home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume2 / dungeon / part01 next >
Encoding:
Internet Message Format  |  1987-09-01  |  57.8 KB

  1. Path: uunet!husc6!mit-eddie!genrad!decvax!tektronix!tekgen!tekred!games-request
  2. From: games-request@tekred.TEK.COM
  3. Newsgroups: comp.sources.games
  4. Subject: v02i034:  dungeon - game of adventure, Part01/14
  5. Message-ID: <1557@tekred.TEK.COM>
  6. Date: 1 Sep 87 18:42:29 GMT
  7. Sender: billr@tekred.TEK.COM
  8. Lines: 1898
  9. Approved: billr@tekred.TEK.COM
  10.  
  11. Submitted by: Bill Randle <games-request@tekred.TEK.COM>
  12. Comp.sources.games: Volume 2, Issue 34
  13. Archive-name: dungeon/Part01
  14.  
  15.     [Well, sports fans, here it is at last: the f77 source for
  16.      dungeon (a.k.a. zork) for Unix machines.  There are no
  17.      SysV/BSD dependencies that I'm aware of.  You are on your
  18.      own as far as porting to other OS's, but it shouldn't be
  19.      too hard if you have a f77 compiler and a large address
  20.      space.  With some work it will run on a pdp-11 (see doc
  21.      and readme files).
  22.      I will accept requests for copies if you are missing just
  23.      a few pieces.  If you are missing several parts *please*
  24.      try a neighboring machine, a direct uucp archive site or
  25.      ftp archive site first.  I will be happy to send you a
  26.      list of archive sites if you don't have one.    -br]
  27.  
  28. #! /bin/sh
  29. # This is a shell archive.  Remove anything before this line, then unpack
  30. # it by saving it into a file and typing "sh file".  To overwrite existing
  31. # files, type "sh file -c".  You can also feed this as standard input via
  32. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  33. # will see the following message at the end:
  34. #        "End of archive 1 (of 7)."
  35. # Contents:  README MANIFEST demons.F np1.F rindex.h
  36. # Wrapped by billr@tekred on Tue Apr 21 10:24:23 1987
  37. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  38. if test -f README -a "${1}" != "-c" ; then 
  39.   echo shar: Will not over-write existing file \"README\"
  40. else
  41. echo shar: Extracting \"README\" \(4053 characters\)
  42. sed "s/^X//" >README <<'END_OF_README'
  43. XThis is a source file distribution for the game dungeon as implemented
  44. Xin f77 for Unix(R) systems.  It is based on the game dungeon as
  45. Xdistributed on a DECUS tape, circa 1980.  It has been converted from
  46. Xthe original DEC FORTRAN into something that is palatable to Unix f77.
  47. XSee the file "History" for some revision history and credit to those
  48. Xwhose efforts have made this possible.
  49. X
  50. XCheckout the Makefile and adjust it to fit your system.  The only
  51. Xthings that should really need tweaking are the directory definitions
  52. Xand the "-D" defines.  There is an example for both large address
  53. Xmachines (e.g. Vax) that get the complete game and small address
  54. Xmachines (e.g. Pdp-11) that get a modified game with minor functionality
  55. Xmissing (to get it to fit).  Also edit the include file "files.h" if
  56. Xnecessary.
  57. X
  58. XAll of the f77 files end in a '.F' extension to force f77 to invoke the
  59. XC preprocessor for the #include files and #ifdefs.  Most of the #ifdefs
  60. Xare for the PDP version (default non-pdp) and for debug (default off).
  61. X
  62. XExcept for DTEXT.DAT, all files in the distribution kit are ASCII.
  63. XDTEXT.DAT is a binary file consisting of 76-byte fixed length records.
  64. X
  65. XThis has been compiled and tested on a PDP-11/44 Version 7, PDP-11/70
  66. X2.9bsd Vax-11/785 4.3bsd and Sun-3 before the pdp and Vax sources were
  67. Xmerged (see the file "History").  After the merge it was again tested on
  68. Xthe Vax 11-785 4.3bsd.
  69. X
  70. XI/we consider my/our changes to be in the public domain.  The original
  71. Xsource, however, is copyright.
  72. X
  73. X    John Gilmore, Nebula Consultants
  74. X    hoptoad!gnu
  75. X    11 December 1986
  76. X
  77. X    Bill Randle
  78. X    Tektronix, Inc.
  79. X    billr@tekred.TEK.COM
  80. X    9 February 1987
  81. X
  82. XDungeon consists of the following files:
  83. X
  84. X    dmain.F            -program root
  85. X    dgame.F            -main routine
  86. X    dsub.F            -resident subroutines
  87. X    dinit.F            -initialization routine
  88. X    np.F            -parser, part 0
  89. X    np1.F            -parser, part 1
  90. X    np2.F            -parser, part 2
  91. X    np3.F            -parser, part 3
  92. X    gdt.F            -game debugging tool
  93. X    verbs.F            -principal verbs
  94. X    objcts.F        -principal objects
  95. X    sverbs.F        -simple verbs
  96. X    dverb1.F        -auxiliary verbs, part 1
  97. X    dverb2.F        -auxiliary verbs, part 2
  98. X    actors.F        -character processors
  99. X    demons.F        -demon processors
  100. X    clockr.F        -clock event processors
  101. X    rooms.F            -room processors
  102. X    nrooms.F        -new room processors
  103. X    sobjs.F            -simple objects
  104. X    nobjs.F            -new objects
  105. X    ballop.F        -balloon processor
  106. X    lightp.F        -light processors
  107. X    villns.F        -villain processors
  108. X    dso1.F            -overlaid subroutines, part 1
  109. X    dso2.F            -overlaid subroutines, part 2
  110. X    dso3.F            -overlaid subroutines, part 3
  111. X    dso4.F            -overlaid subroutines, part 4
  112. X    dso5.F            -overlaid subroutines, part 5
  113. X    dso6.F            -overlaid subroutines, part 6
  114. X    dso7.F            -overlaid subroutines, part 7
  115. X    advers.h        -header file
  116. X    clock.h            -header file
  117. X    curxt.h            -header file
  118. X    debug.h            -header file
  119. X    exits.h            -header file
  120. X    files.h            -header file for directory paths
  121. X    flags.h            -header file
  122. X    gamestate.h        -header file
  123. X    io.h            -header file
  124. X    objects.h        -header file
  125. X    oflags.h        -header file
  126. X    oindex.h        -header file
  127. X    parser.h        -header file
  128. X    puzzle.h        -header file
  129. X    rflag.h            -header file
  130. X    rindex.h        -header file
  131. X    rooms.h            -header file
  132. X    screen.h        -header file
  133. X    state.h            -header file
  134. X    verbs.h            -header file
  135. X    villians.h        -header file
  136. X    vocab.h            -header file
  137. X    xpars.h            -header file
  138. X    xsrch.h            -header file
  139. X    cinit.c            -C routine to initialize game [pdp ver]
  140. X    cio.c            -C routine for misc i/o [pdp version]
  141. X    rtim.c            -C routines for system dependent functions
  142. X    listen.c        -C co-process for reading keyboard [pdp]
  143. X    cspeak.c        -C co-process for displaying messages [pdp]
  144. X    speak.F            -lookup messages for speak process [pdp]
  145. X    decode.c        -C routine to decode binary text file [debug]
  146. X    dindx.dat        -initialization data base
  147. X    dtext.dat        -main data base [binary file]
  148. X    rtext.dat        -message index file [pdp version]
  149. X    dungeon.sh        -shell script to invoke pdp version
  150. X    dungeon.doc        -original documentation file
  151. X    dungeon.6        -man page abstracted from dungeon.doc
  152. X    Makefile        -Makefile for making pdp or vax versions
  153. X    History            -Some revision history notes
  154. X    PDP.doc            -Notes on the PDP-11/Unix conversion
  155. X    README            -This file
  156. END_OF_README
  157. if test 4053 -ne `wc -c <README`; then
  158.     echo shar: \"README\" unpacked with wrong size!
  159. fi
  160. # end of overwriting check
  161. fi
  162. if test -f MANIFEST -a "${1}" != "-c" ; then 
  163.   echo shar: Will not over-write existing file \"MANIFEST\"
  164. else
  165. echo shar: Extracting \"MANIFEST\" \(2453 characters\)
  166. sed "s/^X//" >MANIFEST <<'END_OF_MANIFEST'
  167. X   File Name        Archive #    Description
  168. X-----------------------------------------------------------
  169. X History                   6    
  170. X MANIFEST                  1    This shipping list
  171. X Makefile                  7    
  172. X PDP.doc                   7    
  173. X README                    1    
  174. X README.pdp           8
  175. X actors.F                  6    
  176. X advers.h                  7    
  177. X ballop.F                  7    
  178. X cinit.c                   7    
  179. X cio.c                     7    
  180. X clock.h                   4    
  181. X clockr.F                  2    
  182. X cspeak.c                  7    
  183. X curxt.h                   7    
  184. X debug.h                   7    
  185. X decode.c                  7    
  186. X demons.F                  1    
  187. X dgame.F                   6    
  188. X dinit.F                   5    
  189. X dindx.dat           8
  190. X dmain.F                   6    
  191. X dso1.F                    7    
  192. X dso2.F                    5    
  193. X dso3.F                    7    
  194. X dso4.F                    7    
  195. X dso5.F                    7    
  196. X dso6.F                    7    
  197. X dso7.F                    7    
  198. X dsub.F                    5    
  199. X dtext.aa           9
  200. X dtext.ab          10
  201. X dtext.ac          11
  202. X dtext.ad          12
  203. X dtext.ae          13
  204. X dtext.af          14
  205. X dungeon.6                 5    
  206. X dungeon.doc               2    
  207. X dungeon.sh                7    
  208. X dverb1.F                  6    
  209. X dverb2.F                  4    
  210. X exits.h                   7    
  211. X files.h                   7    
  212. X flags.h                   7    
  213. X gamestate.h               7    
  214. X gdt.F                     4    
  215. X io.h                      7    
  216. X lex.c                     4    
  217. X lightp.F                  7    
  218. X listen.c                  7    
  219. X maketxt.sh          14
  220. X mindex.h                  7    
  221. X nobjs.F                   4    
  222. X np.F                      6    
  223. X np1.F                     1    
  224. X np2.F                     6    
  225. X np3.F                     5    
  226. X nrooms.F                  6    
  227. X objcts.F                  3    
  228. X objects.h                 5    
  229. X oflags.h                  6    
  230. X oindex.h                  7    
  231. X parser.h                  7    
  232. X puzzle.h                  7    
  233. X rflag.h                   7    
  234. X rindex.h                  1    
  235. X rooms.F                   3    
  236. X rooms.h                   7    
  237. X rtext.dat                 5    
  238. X rtim.c                    7    
  239. X screen.h                  7    
  240. X sobjs.F                   3    
  241. X speak.F                   6    
  242. X state.h                   7    
  243. X sverbs.F                  4    
  244. X verbs.F                   2    
  245. X verbs.h                   3    
  246. X villians.h                7    
  247. X villns.F                  3    
  248. X vocab.h                   7    
  249. X xpars.h                   7    
  250. X xsrch.h                   7    
  251. END_OF_MANIFEST
  252. if test 2453 -ne `wc -c <MANIFEST`; then
  253.     echo shar: \"MANIFEST\" unpacked with wrong size!
  254. fi
  255. # end of overwriting check
  256. fi
  257. if test -f demons.F -a "${1}" != "-c" ; then 
  258.   echo shar: Will not over-write existing file \"demons.F\"
  259. else
  260. echo shar: Extracting \"demons.F\" \(9279 characters\)
  261. sed "s/^X//" >demons.F <<'END_OF_demons.F'
  262. XC FIGHTD- INTERMOVE FIGHT DEMON
  263. XC
  264. XC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
  265. XC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
  266. XC WRITTEN BY R. M. SUPNIK
  267. XC
  268. XC DECLARATIONS
  269. XC
  270. X    SUBROUTINE FIGHTD
  271. X    IMPLICIT INTEGER (A-Z)
  272. X    LOGICAL PROB,OAPPLI
  273. X#include "parser.h"
  274. X#include "gamestate.h"
  275. X#include "objects.h"
  276. X#include "oflags.h"
  277. X#include "oindex.h"
  278. X#include "villians.h"
  279. X#include "advers.h"
  280. X#include "verbs.h"
  281. X#include "flags.h"
  282. XC
  283. X    LOGICAL F
  284. XC
  285. XC FUNCTIONS AND DATA
  286. XC
  287. X    DATA ROUT/1/
  288. XC FIGHTD, PAGE 2
  289. XC
  290. X    DO 2400 I=1,VLNT
  291. XC                        !LOOP THRU VILLAINS.
  292. X      VOPPS(I)=0
  293. XC                        !CLEAR OPPONENT SLOT.
  294. X      OBJ=VILLNS(I)
  295. XC                        !GET OBJECT NO.
  296. X      RA=OACTIO(OBJ)
  297. XC                        !GET HIS ACTION.
  298. X      IF(HERE.NE.OROOM(OBJ)) GO TO 2200
  299. XC                        !ADVENTURER STILL HERE?
  300. X      IF((OBJ.EQ.THIEF).AND.THFENF) GO TO 2400
  301. XC                        !THIEF ENGROSSED?
  302. X      IF(OCAPAC(OBJ).GE.0) GO TO 2050
  303. XC                        !YES, VILL AWAKE?
  304. X      IF((VPROB(I).EQ.0).OR..NOT.PROB(VPROB(I),VPROB(I)))
  305. X&        GO TO 2025
  306. X      OCAPAC(OBJ)=IABS(OCAPAC(OBJ))
  307. X      VPROB(I)=0
  308. X      IF(RA.EQ.0) GO TO 2400
  309. XC                        !ANYTHING TO DO?
  310. X      PRSA=INXW
  311. XC                        !YES, WAKE HIM UP.
  312. X      F=OAPPLI(RA,0)
  313. X      GO TO 2400
  314. XC                        !NOTHING ELSE HAPPENS.
  315. XC
  316. X2025      VPROB(I)=VPROB(I)+10
  317. XC                        !INCREASE WAKEUP PROB.
  318. X      GO TO 2400
  319. XC                        !NOTHING ELSE.
  320. XC
  321. X2050      IF((and(OFLAG2(OBJ),FITEBT)).EQ.0) GO TO 2100
  322. X      VOPPS(I)=OBJ
  323. XC                        !FIGHTING, SET UP OPP.
  324. X      GO TO 2400
  325. XC
  326. X2100      IF(RA.EQ.0) GO TO 2400
  327. XC                        !NOT FIGHTING,
  328. X      PRSA=FRSTQW
  329. XC                        !SET UP PROBABILITY
  330. X      IF(.NOT.OAPPLI(RA,0)) GO TO 2400
  331. XC                        !OF FIGHTING.
  332. X      OFLAG2(OBJ)=or(OFLAG2(OBJ),FITEBT)
  333. X      VOPPS(I)=OBJ
  334. XC                        !SET UP OPP.
  335. X      GO TO 2400
  336. XC
  337. X2200      IF((and(OFLAG2(OBJ),FITEBT).EQ.0).OR.(RA.EQ.0))
  338. X&        GO TO 2300
  339. X      PRSA=FIGHTW
  340. XC                        !HAVE A FIGHT.
  341. X      F=OAPPLI(RA,0)
  342. X2300      IF(OBJ.EQ.THIEF) THFENF=.FALSE.
  343. XC                        !TURN OFF ENGROSSED.
  344. X      AFLAG(PLAYER)=and(AFLAG(PLAYER), not(ASTAG))
  345. X      OFLAG2(OBJ)=and(OFLAG2(OBJ), not(STAGBT+FITEBT))
  346. X      IF((OCAPAC(OBJ).GE.0).OR.(RA.EQ.0))
  347. X&        GO TO 2400
  348. X      PRSA=INXW
  349. XC                        !WAKE HIM UP.
  350. X      F=OAPPLI(RA,0)
  351. X      OCAPAC(OBJ)=IABS(OCAPAC(OBJ))
  352. X2400    CONTINUE
  353. XC FIGHTD, PAGE 3
  354. XC
  355. XC NOW DO ACTUAL COUNTERBLOWS.
  356. XC
  357. X    OUT=0
  358. XC                        !ASSUME HERO OK.
  359. X2600    DO 2700 I=1,VLNT
  360. XC                        !LOOP THRU OPPS.
  361. X      J=VOPPS(I)
  362. X      IF(J.EQ.0) GO TO 2700
  363. XC                        !SLOT EMPTY?
  364. X      PRSCON=1
  365. XC                        !STOP CMD STREAM.
  366. X      RA=OACTIO(J)
  367. X      IF(RA.EQ.0) GO TO 2650
  368. XC                        !VILLAIN ACTION?
  369. X      PRSA=FIGHTW
  370. XC                        !SEE IF
  371. X      IF(OAPPLI(RA,0)) GO TO 2700
  372. XC                        !SPECIAL ACTION.
  373. X2650      RES=BLOW(PLAYER,J,VMELEE(I),.FALSE.,OUT)
  374. XC                        !STRIKE BLOW.
  375. X      IF(RES.LT.0) RETURN
  376. XC                        !IF HERO DEAD, EXIT.
  377. X      IF(RES.EQ.ROUT) OUT=2+RND(3)
  378. XC                        !IF HERO OUT, SET FLG.
  379. X2700    CONTINUE
  380. X    OUT=OUT-1
  381. XC                        !DECREMENT OUT COUNT.
  382. X    IF(OUT.GT.0) GO TO 2600
  383. XC                        !IF STILL OUT, GO AGAIN.
  384. X    RETURN
  385. XC
  386. X    END
  387. XC BLOW- STRIKE BLOW
  388. XC
  389. XC DECLARATIONS
  390. XC
  391. X    INTEGER FUNCTION BLOW(H,V,RMK,HFLG,OUT)
  392. X    IMPLICIT INTEGER (A-Z)
  393. X    LOGICAL HFLG,OAPPLI,PROB
  394. X    INTEGER DEF1R(3),DEF2R(4),DEF3R(5)
  395. X    INTEGER RVECTR(66),RSTATE(45)
  396. X#include "gamestate.h"
  397. XC
  398. XC PARSE VECTOR
  399. XC
  400. X    LOGICAL PRSWON
  401. X#include "parser.h"
  402. XC
  403. XC MISCELLANEOUS VARIABLES
  404. XC
  405. X    COMMON /STAR/ MBASE,STRBIT
  406. X#include "objects.h"
  407. X#include "oflags.h"
  408. XC
  409. X#include "clock.h"
  410. X
  411. X#include "advers.h"
  412. X#include "verbs.h"
  413. XC
  414. X    LOGICAL F
  415. XC
  416. XC FUNCTIONS AND DATA
  417. XC
  418. X    DATA RMISS/0/,ROUT/1/,RKILL/2/,RLIGHT/3/
  419. X    DATA RSER/4/,RSTAG/5/,RLOSE/6/,RHES/7/,RSIT/8/
  420. X    DATA DEF1R/1,2,3/
  421. X    DATA DEF2R/13,23,24,25/
  422. X    DATA DEF3R/35,36,46,47,57/
  423. XC
  424. X    DATA RVECTR/0,0,0,0,5,5,1,1,2,2,2,2,
  425. X&        0,0,0,0,0,5,5,3,3,1,
  426. X&        0,0,0,5,5,3,3,3,1,2,2,2,
  427. X&        0,0,0,0,0,5,5,3,3,4,4,
  428. X&        0,0,0,5,5,3,3,3,4,4,4,
  429. X&        0,5,5,3,3,3,3,4,4,4/
  430. X    DATA RSTATE/5000,3005,3008,4011,3015,3018,1021,0,0,
  431. X&        5022,3027,3030,4033,3037,3040,1043,0,0,
  432. X&        4044,2048,4050,4054,5058,4063,4067,3071,1074,
  433. X&        4075,1079,4080,4084,4088,4092,4096,4100,1104,
  434. X&        4105,2109,4111,4115,4119,4123,4127,3131,3134/
  435. XC BLOW, PAGE 3
  436. XC
  437. X    RA=OACTIO(V)
  438. XC                        !GET VILLAIN ACTION,
  439. X    DV=ODESC2(V)
  440. XC                        !DESCRIPTION.
  441. X    BLOW=RMISS
  442. XC                        !ASSUME NO RESULT.
  443. X#ifdef debug
  444. X    PRINT 10,H,V,RMK,HFLG,OUT
  445. X10    FORMAT(' BLOW 10-- ',3I7,L7,I7)
  446. X#endif debug
  447. X    IF(.NOT.HFLG) GO TO 1000
  448. XC                        !HERO STRIKING BLOW?
  449. XC
  450. XC HERO IS ATTACKER, VILLAIN IS DEFENDER.
  451. XC
  452. X    PBLOSE=10
  453. XC                        !BAD LK PROB.
  454. X    OFLAG2(V)=or(OFLAG2(V),FITEBT)
  455. X    IF(and(AFLAG(H),ASTAG).EQ.0) GO TO 100
  456. X    CALL RSPEAK(591)
  457. XC                        !YES, CANT FIGHT.
  458. X    AFLAG(H)=and(AFLAG(H), not(ASTAG))
  459. X    RETURN
  460. XC
  461. X100    ATT=FIGHTS(H,.TRUE.)
  462. XC                        !GET HIS STRENGTH.
  463. X    OA=ATT
  464. X    DEF=VILSTR(V)
  465. XC                        !GET VILL STRENGTH.
  466. X    OD=DEF
  467. X    DWEAP=0
  468. XC                        !ASSUME NO WEAPON.
  469. X    DO 200 I=1,OLNT
  470. XC                        !SEARCH VILLAIN.
  471. X      IF((OCAN(I).EQ.V).AND.(and(OFLAG2(I),WEAPBT).NE.0))
  472. X&        DWEAP=I
  473. X200    CONTINUE
  474. X    IF(V.EQ.AOBJ(PLAYER)) GO TO 300
  475. XC                        !KILLING SELF?
  476. X    IF(DEF.NE.0) GO TO 2000
  477. XC                        !DEFENDER ALIVE?
  478. X    CALL RSPSUB(592,DV)
  479. XC                        !VILLAIN DEAD.
  480. X    RETURN
  481. XC
  482. X300    CALL JIGSUP(593)
  483. XC                        !KILLING SELF.
  484. X    RETURN
  485. XC
  486. XC VILLAIN IS ATTACKER, HERO IS DEFENDER.
  487. XC
  488. X1000    PBLOSE=50
  489. XC                        !BAD LK PROB.
  490. X    AFLAG(H)=and(AFLAG(H),not(ASTAG))
  491. X    IF(and(OFLAG2(V),STAGBT).EQ.0) GO TO 1200
  492. X    OFLAG2(V)=and(OFLAG2(V), not(STAGBT))
  493. X    CALL RSPSUB(594,DV)
  494. XC                        !DESCRIBE.
  495. X    RETURN
  496. XC
  497. X1200    ATT=VILSTR(V)
  498. XC                        !SET UP ATT, DEF.
  499. X    OA=ATT
  500. X    DEF=FIGHTS(H,.TRUE.)
  501. X    IF(DEF.LE.0) RETURN
  502. XC                        !DONT ALLOW DEAD DEF.
  503. X    OD=FIGHTS(H,.FALSE.)
  504. X    DWEAP=IABS(FWIM(0,WEAPBT,0,0,H,.TRUE.))
  505. XC                        !FIND A WEAPON.
  506. XC BLOW, PAGE 4
  507. XC
  508. XC PARTIES ARE NOW EQUIPPED.  DEF CANNOT BE ZERO.
  509. XC ATT MUST BE > 0.
  510. XC
  511. X2000    CONTINUE
  512. X#ifdef debug
  513. X    PRINT 2050,ATT,OA,DEF,OD,DWEAP
  514. X2050    FORMAT(' BLOW 2050-- ',5I7)
  515. X#endif debug
  516. X    IF(DEF.GT.0) GO TO 2100
  517. XC                        !DEF ALIVE?
  518. X    RES=RKILL
  519. X    IF(HFLG) CALL RSPSUB(595,DV)
  520. XC                        !DEADER.
  521. X    GO TO 3000
  522. XC
  523. X2100    IF(DEF-2) 2200,2300,2400
  524. XC                        !DEF <2,=2,>2
  525. X2200    ATT=MIN0(ATT,3)
  526. XC                        !SCALE ATT.
  527. X    TBL=DEF1R(ATT)
  528. XC                        !CHOOSE TABLE.
  529. X    GO TO 2500
  530. XC
  531. X2300    ATT=MIN0(ATT,4)
  532. XC                        !SCALE ATT.
  533. X    TBL=DEF2R(ATT)
  534. XC                        !CHOOSE TABLE.
  535. X    GO TO 2500
  536. XC
  537. X2400    ATT=ATT-DEF
  538. XC                        !SCALE ATT.
  539. X    ATT=MIN0(2,MAX0(-2,ATT))+3
  540. X    TBL=DEF3R(ATT)
  541. XC
  542. X2500    RES=RVECTR(TBL+RND(10))
  543. XC                        !GET RESULT.
  544. X    IF(OUT.EQ.0) GO TO 2600
  545. XC                        !WAS HE OUT?
  546. X    IF(RES.EQ.RSTAG) GO TO 2550
  547. XC                        !YES, STAG--> HES.
  548. X    RES=RSIT
  549. XC                        !OTHERWISE, SITTING.
  550. X    GO TO 2600
  551. X2550    RES=RHES
  552. X2600    IF((RES.EQ.RSTAG).AND.(DWEAP.NE.0).AND.PROB(25,PBLOSE))
  553. X&        RES=RLOSE
  554. XC
  555. X    MI=RSTATE(((RMK-1)*9)+RES+1)
  556. XC                        !CHOOSE TABLE ENTRY.
  557. X    IF(MI.EQ.0) GO TO 3000
  558. X    I=(MOD(MI,1000)+RND(MI/1000))+MBASE+1
  559. X    J=DV
  560. X    IF(.NOT.HFLG .AND.(DWEAP.NE.0)) J=ODESC2(DWEAP)
  561. X#ifdef debug
  562. X    PRINT 2650,RES,MI,I,J,MBASE
  563. X2650    FORMAT(' BLOW 2650-- ',5I7)
  564. X#endif debug
  565. X    CALL RSPSUB(I,J)
  566. XC                        !PRESENT RESULT.
  567. XC BLOW, PAGE 5
  568. XC
  569. XC NOW APPLY RESULT
  570. XC
  571. X3000    GO TO (4000,3100,3200,3300,3400,3500,3600,4000,3200),RES+1
  572. XC
  573. X3100    IF(HFLG) DEF=-DEF
  574. XC                        !UNCONSCIOUS.
  575. X    GO TO 4000
  576. XC
  577. X3200    DEF=0
  578. XC                        !KILLED OR SITTING DUCK.
  579. X    GO TO 4000
  580. XC
  581. X3300    DEF=MAX0(0,DEF-1)
  582. XC                        !LIGHT WOUND.
  583. X    GO TO 4000
  584. XC
  585. X3400    DEF=MAX0(0,DEF-2)
  586. XC                        !SERIOUS WOUND.
  587. X    GO TO 4000
  588. XC
  589. X3500    IF(HFLG) GO TO 3550
  590. XC                        !STAGGERED.
  591. X    AFLAG(H)=or(AFLAG(H),ASTAG)
  592. X    GO TO 4000
  593. XC
  594. X3550    OFLAG2(V)=or(OFLAG2(V),STAGBT)
  595. X    GO TO 4000
  596. XC
  597. X3600    CALL NEWSTA(DWEAP,0,HERE,0,0)
  598. XC                        !LOSE WEAPON.
  599. X    DWEAP=0
  600. X    IF(HFLG) GO TO 4000
  601. XC                        !IF HERO, DONE.
  602. X    DWEAP=IABS(FWIM(0,WEAPBT,0,0,H,.TRUE.))
  603. XC                        !GET NEW.
  604. X    IF(DWEAP.NE.0) CALL RSPSUB(605,ODESC2(DWEAP))
  605. XC BLOW, PAGE 6
  606. XC
  607. X4000    BLOW=RES
  608. XC                        !RETURN RESULT.
  609. X    IF(.NOT.HFLG) GO TO 4500
  610. XC                        !HERO?
  611. X    OCAPAC(V)=DEF
  612. XC                        !STORE NEW CAPACITY.
  613. X    IF(DEF.NE.0) GO TO 4100
  614. XC                        !DEAD?
  615. X    OFLAG2(V)=and(OFLAG2(V), not(FITEBT))
  616. X    CALL RSPSUB(572,DV)
  617. XC                        !HE DIES.
  618. X    CALL NEWSTA(V,0,0,0,0)
  619. XC                        !MAKE HIM DISAPPEAR.
  620. X    IF(RA.EQ.0) RETURN
  621. XC                        !IF NX TO DO, EXIT.
  622. X    PRSA=DEADXW
  623. XC                        !LET HIM KNOW.
  624. X    F=OAPPLI(RA,0)
  625. X    RETURN
  626. XC
  627. X4100    IF((RES.NE.ROUT).OR.(RA.EQ.0)) RETURN
  628. X    PRSA=OUTXW
  629. XC                        !LET HIM BE OUT.
  630. X    F=OAPPLI(RA,0)
  631. X    RETURN
  632. XC
  633. X4500    ASTREN(H)=-10000
  634. XC                        !ASSUME DEAD.
  635. X    IF(DEF.NE.0) ASTREN(H)=DEF-OD
  636. X    IF(DEF.GE.OD) GO TO 4600
  637. X    CTICK(CEVCUR)=30
  638. X    CFLAG(CEVCUR)=.TRUE.
  639. X4600    IF(FIGHTS(H,.TRUE.).GT.0) RETURN
  640. X    ASTREN(H)=1-FIGHTS(H,.FALSE.)
  641. XC                        !HE'S DEAD.
  642. X    CALL JIGSUP(596)
  643. X    BLOW=-1
  644. X    RETURN
  645. XC
  646. X    END
  647. XC SWORDD- SWORD INTERMOVE DEMON
  648. XC
  649. XC DECLARATIONS
  650. XC
  651. X    SUBROUTINE SWORDD
  652. X    IMPLICIT INTEGER(A-Z)
  653. X    LOGICAL INFEST,FINDXT
  654. X#include "gamestate.h"
  655. X#include "curxt.h"
  656. X#include "xsrch.h"
  657. X#include "objects.h"
  658. X#include "oindex.h"
  659. X#include "villians.h"
  660. X#include "advers.h"
  661. XC SWORDD, PAGE 2
  662. XC
  663. X    IF(OADV(SWORD).NE.PLAYER) GO TO 500
  664. XC                        !HOLDING SWORD?
  665. X    NG=2
  666. XC                        !ASSUME VILL CLOSE.
  667. X    IF(INFEST(HERE)) GO TO 300
  668. XC                        !VILL HERE?
  669. X    NG=1
  670. X    DO 200 I=XMIN,XMAX,XMIN
  671. XC                        !NO, SEARCH ROOMS.
  672. X      IF(.NOT.FINDXT(I,HERE)) GO TO 200
  673. XC                        !ROOM THAT WAY?
  674. X      GO TO (50,200,50,50),XTYPE
  675. XC                        !SEE IF ROOM AT ALL.
  676. X50      IF(INFEST(XROOM1)) GO TO 300
  677. XC                        !CHECK ROOM.
  678. X200    CONTINUE
  679. X    NG=0
  680. XC                        !NO GLOW.
  681. XC
  682. X300    IF(NG.EQ.SWDSTA) RETURN
  683. XC                        !ANY STATE CHANGE?
  684. X    CALL RSPEAK(NG+495)
  685. XC                        !YES, TELL NEW STATE.
  686. X    SWDSTA=NG
  687. X    RETURN
  688. XC
  689. X500    SWDACT=.FALSE.
  690. XC                        !DROPPED SWORD,
  691. X    RETURN
  692. XC                        !DISABLE DEMON.
  693. X    END
  694. XC INFEST-    SUBROUTINE TO TEST FOR INFESTED ROOM
  695. XC
  696. XC DECLARATIONS
  697. XC
  698. X    LOGICAL FUNCTION INFEST(R)
  699. X    IMPLICIT INTEGER(A-Z)
  700. XC
  701. XC ROOMS
  702. X#include "rindex.h"
  703. X#include "objects.h"
  704. X#include "oindex.h"
  705. X#include "villians.h"
  706. X#include "flags.h"
  707. XC
  708. X    IF(.NOT.ENDGMF) INFEST=(OROOM(CYCLO).EQ.R).OR.
  709. X&        (OROOM(TROLL).EQ.R).OR.
  710. X&        ((OROOM(THIEF).EQ.R).AND.THFACT)
  711. X    IF(ENDGMF) INFEST=(R.EQ.MRG).OR.(R.EQ.MRGE).OR.
  712. X&        (R.EQ.MRGW).OR.
  713. X&        ((R.EQ.INMIR).AND.(MLOC.EQ.MRG))
  714. X    RETURN
  715. X    END
  716. END_OF_demons.F
  717. if test 9279 -ne `wc -c <demons.F`; then
  718.     echo shar: \"demons.F\" unpacked with wrong size!
  719. fi
  720. # end of overwriting check
  721. fi
  722. if test -f np1.F -a "${1}" != "-c" ; then 
  723.   echo shar: Will not over-write existing file \"np1.F\"
  724. else
  725. echo shar: Extracting \"np1.F\" \(36982 characters\)
  726. sed "s/^X//" >np1.F <<'END_OF_np1.F'
  727. XC SPARSE-    START OF PARSE
  728. XC
  729. XC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
  730. XC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
  731. XC WRITTEN BY R. M. SUPNIK
  732. XC
  733. XC DECLARATIONS
  734. XC
  735. XC THIS ROUTINE DETAILS ON BIT 2 OF PRSFLG
  736. XC
  737. X    INTEGER  FUNCTION  SPARSE(LBUF,LLNT,VBFLAG)
  738. X    IMPLICIT INTEGER(A-Z)
  739. X    INTEGER  LBUF(40)
  740. X    LOGICAL  LIT,OTEST,VBFLAG
  741. X#include "parser.h"
  742. X#include "gamestate.h"
  743. X#include "debug.h"
  744. X#include "objects.h"
  745. X#include "oindex.h"
  746. X#include "advers.h"
  747. X#include "verbs.h"
  748. X#include "vocab.h"
  749. XC SPARSE, PAGE 2
  750. XC
  751. XC FUNCTIONS AND DATA
  752. XC
  753. X    OTEST(R)=(R.GT.0).AND.(R.LT.R50MIN)
  754. XC
  755. XC   THE FOLLOWING DATA STATEMENT ORIGINALLY WAS:
  756. XC
  757. XC    DATA R50MIN/1RA/,R50WAL/3RWAL/
  758. XC
  759. X    DATA R50MIN/1600/,R50WAL/36852/
  760. XC
  761. XC BUZZ WORDS--    IGNORED IN SYNTACTIC PROCESSING
  762. XC
  763. XC   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM:
  764. XC
  765. XC    DATA BVOC/3RAND,0,2RBY,0,2RIS,0,1RA,0,
  766. XC&        2RAN,0,3RTHE,0,3RRUN,0,2RGO,0,3RPRO,3RCEE,0,0/
  767. XC
  768. X    DATA BVOC/2164,0,4200,0,15160,0,1600,0,
  769. X&        2160,0,32325,0,29654,0,11800,0,26335,5005,0,0/
  770. XC
  771. XC
  772. XC PREPOSITIONS--    MAPS PREPOSITIONS TO INDICES
  773. XC
  774. XC   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM:
  775. XC
  776. XC    DATA PVOC/3ROVE,1RR,1,3RWIT,1RH,2,3RUSI,2RNG,2,3RTHR,3ROUG,2,
  777. XC&        2RAT,0,3,2RTO,0,4,2RIN,0,5,3RINS,3RIDE,5,3RINT,1RO,5,
  778. XC&        3RDOW,1RN,6,2RUP,0,7,3RUND,2RER,8,2ROF,0,9,2RON,0,10,
  779. XC&        3ROFF,0,11/
  780. XC
  781. X    DATA PVOC/24885,28800,1,37180,12800,2,34369,22680,2,
  782. X&        32338,24847,2,2400,0,3,32600,0,4,14960,0,5,
  783. X&        14979,14565,5,14980,0,5,7023,22400,6,34240,0,7,
  784. X&        34164,8720,8,24240,0,9,24560,0,10,24246,0,11/
  785. XC
  786. XC
  787. XC DIRECTIONS--    MAPS DIRECTIONS TO INDICES
  788. XC
  789. XC   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM:
  790. XC
  791. XC    DATA DVOC/1RN,0,"2000,3RNOR,2RTH,"2000,1RS,0,"12000,
  792. XC&     1RE,0,"6000,3REAS,1RT,"6000,1RW,0,"16000,3RWES,1RT,"16000,
  793. XC&     2RSE,0,"10000,2RSW,0,"14000,
  794. XC&     2RNE,0,"4000,2RNW,0,"20000,
  795. XC&     1RU,0,"22000,2RUP,0,"22000,1RD,0,"24000,3RDOW,1RN,"24000,
  796. XC&     3RLAU,3RNCH,"26000,3RLAN,1RD,"30000,3RENT,2RER,"32000,
  797. XC&     3REXI,1RT,"34000,3ROUT,0,"34000,3RLEA,2RVE,"34000,
  798. XC&     3RTRA,3RVEL,"36000,3RSOU,2RTH,"12000,
  799. XC&     2RIN,0,"32000,
  800. XC&     3RCRO,2RSS,"36000/
  801. XC
  802. X    DATA DVOC/22400,0,o"2000",23018,32320,o"2000",30400,0,o"12000",
  803. X&        8000,0,o"6000",8059,32000,o"6000",36800,0,o"16000",
  804. X&        37019,32000,o"16000",30600,0,o"10000",31320,0,o"14000",
  805. X&        22600,0,o"4000",23320,0,o"20000",
  806. X&        33600,0,o"22000",34240,0,o"22000",6400,0,o"24000",
  807. X&        7023,22400,o"24000",19261,22528,o"26000",
  808. X&        19254,6400,o"30000",8580,8720,o"32000",
  809. X&        8969,32000,o"34000",24860,0,o"34000",
  810. X&        19401,35400,o"34000",32721,35412,o"36000",
  811. X&        31021,32320,o"12000",14960,0,o"32000",
  812. X&        5535,31160,o"36000"/
  813. XC
  814. XC
  815. XC SPARSE, PAGE 3
  816. XC
  817. XC ADJECTIVES--    MAPS ADJECTIVES TO OBJECT NUMBERS
  818. XC
  819. XC EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF A TWO WORD
  820. XC ADJECTIVE IN RADIX-50 FOLLOWED BY ONE OR MORE OBJECT NUMBERS.
  821. XC NOTE THAT ADJECTIVES CAN BE DISTINGUISHED FROM OBJECTS AS
  822. XC FOLLOWS-- ALL ADJECTIVES ARE .GE. 1RA (1600), WHILE ALL OBJECTS
  823. XC ARE .LE. OLNT (255 MAX).
  824. XC
  825. XC   THE DATA STATEMENT BELOW WAS CONVERTED FROM:
  826. XC
  827. XC    DATA AVOC1/3RBRO,2RWN,1,81,3RELO,3RNGA,1,3RHOT,0,3,3RPEP,3RPER,3,
  828. XC&     3RVIT,3RREO,4,3RJAD,1RE,6,3RHUG,1RE,8,3RENO,3RRMO,8,122,
  829. XC&     3RTRO,3RPHY,9,3RCLE,2RAR,10,3RLAR,2RGE,12,26,47,95,96,123,
  830. XC&     133,135,146,147,150,176,3RNAS,2RTY,13,3RELV,3RISH,14,
  831. XC&     3RBRA,2RSS,15,16,46,156,
  832. XC&     3RBRO,3RKEN,16,22,92,113,155,158,3RORI,3RENT,17,
  833. XC&     3RBLO,3RODY,20,3RRUS,2RTY,21,3RBUR,3RNED,22,
  834. XC&     3RDEA,1RD,22,3ROLD,0,25,41,44,45,3RLEA,3RTHE,25,
  835. XC&     3RPLA,3RTIN,26,3RPEA,2RRL,27,
  836. XC&     3RMOB,1RY,31,3RCRY,3RSTA,32,126,
  837. XC&     3RGOL,1RD,33,85,104,157,158,188,
  838. XC&     3RIVO,2RRY,34,3RSAP,3RPHI,37,3RWOO,3RDEN,38,67,136,137,
  839. XC&     165,173,174,175,3RWOO,1RD,38,67,136,137,165,173,174,175,
  840. XC&     3RSTE,2REL,39,125,189,
  841. XC&     3RDEN,3RTED,39,3RFAN,2RCY,40,3RANC,3RIEN,41,44,
  842. XC&     3RSMA,2RLL,5,46,52,53,89,102,103,153,187,
  843. XC&     3RBLA,2RCK,47,162,3RTOU,1RR,49,
  844. XC&     3RVIS,3RCOU,55,3RVIC,3RIOU,62,
  845. XC&     3RGLA,2RSS,10,126,132,3RTRA,1RP,66/
  846. XC
  847. XC
  848. X    DATA AVOC1/3935,37360,1,81,8495,22681,1,13420,0,3,25816,25818,3,
  849. X&     35580,29015,4,16044,8000,6,13647,8000,8,8575,29335,8,122,
  850. X&     32735,25945,9,5285,2320,10,19258,11400,12,26,47,95,96,123,
  851. X&     133,135,146,147,150,176,22459,33000,13,8502,15168,14,
  852. X&     3921,31160,15,16,46,156,
  853. X&     3935,17814,16,22,92,113,155,158,24729,8580,17,
  854. X&     3695,24185,20,29659,33000,21,4058,22604,22,
  855. X&     6601,6400,22,24484,0,25,41,44,45,19401,32325,25,
  856. X&     26081,32374,26,25801,29280,27,
  857. X&     21402,40000,31,5545,31201,32,126,
  858. X&     11812,6400,33,85,104,157,158,188,
  859. X&     15295,29800,34,30456,25929,37,37415,6614,38,67,136,137,
  860. X&     165,173,174,175,37415,6400,38,67,136,137,165,173,174,175,
  861. X&     31205,8480,39,125,189,
  862. X&     6614,32204,39,9654,5800,40,2163,14614,41,44,
  863. X&     30921,19680,5,46,52,53,89,102,103,153,187,
  864. X&     3681,5240,47,162,32621,28800,49,
  865. X&     35579,5421,55,35563,15021,62,
  866. X&     11681,31160,10,126,132,32721,25600,66/
  867. XC
  868. XC
  869. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  870. XC
  871. XC    DATA AVOC2/3RFRO,2RNT,68,3RSTO,2RNE,69,150,214,3RMAN,3RGLE,72,
  872. XC&     3RRED,0,79,94,140,161,170,171,3RYEL,3RLOW,80,159,
  873. XC&     3RBLU,1RE,82,112,114,141,
  874. XC&     3RVAM,3RPIR,83,3RMAG,2RIC,90,
  875. XC&     3RSEA,3RWOR,90,3RTAN,0,91,3RSHA,2RRP,92,
  876. XC&     3RWIC,3RKER,98,3RCLO,2RTH,100,
  877. XC&     3RBRA,3RIDE,101,
  878. XC&     3RGAU,2RDY,108,3RSQU,3RARE,109,127,3RCLA,1RY,109,
  879. XC&     3RSHI,2RNY,110,3RTHI,1RN,110,
  880. XC&     3RGRE,2REN,115,143,3RPUR,3RPLE,116,3RWHI,2RTE,117,147,160,
  881. XC&     3RMAR,3RBLE,119,3RCOK,1RE,121,3REMP,2RTY,121,
  882. XC&     3RROU,2RND,128,3RTRI,3RANG,129,
  883. XC&    2 3RRAR,1RE,134,3ROBL,3RONG,135,3REAT,3R$ME,138,
  884. XC&     3REAT,2RME,138,3RORA,3RNGE,139,3RECC,1RH,141/
  885. XC
  886. XC
  887. X    DATA AVOC2/10335,23200,68,31215,22600,69,150,214,20854,11685,72,
  888. X&        29004,0,79,94,140,161,170,171,40212,19823,80,159,
  889. X&        3701,8000,82,112,114,141,
  890. X&        35253,25978,83,20847,14520,90,
  891. X&        30601,37418,90,32054,0,91,30721,29440,92,
  892. X&        37163,17818,98,5295,32320,100,
  893. X&        3921,14565,101,
  894. X&        11261,7400,108,31101,2325,109,127,5281,4000,109,
  895. X&        30729,23400,110,32329,22400,110,
  896. X&        11925,8560,115,143,26458,26085,116,
  897. X&        37129,32200,117,147,160,
  898. X&        20858,3685,119,5411,8000,121,8536,33000,121,
  899. X&        29421,22560,128,32729,2167,129,
  900. X&        28858,8000,134,24092,24567,135,8060,43725,138,
  901. X&        8060,21000,138,24721,22685,139,8123,12800,141/
  902. XC
  903. XC
  904. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  905. XC
  906. XC    DATA AVOC3/3RROC,2RKY,147,3RSHE,2RER,147,
  907. XC&     3R200,0,148,3RNEA,1RT,148,3RSHI,3RMME,151,
  908. XC&     3RZUR,3RICH,152,3RBIR,2RDS,153,154,155,
  909. XC&     3RENC,3RRUS,154,155,3RBEA,3RUTI,156,3RCLO,3RCKW,157,158,
  910. XC&     3RMEC,3RHAN,157,158,
  911. XC&     3RMAH,3ROGA,163,3RPIN,1RE,164,3RLON,1RG,166,
  912. XC&     3RCEN,3RTER,166,3RSHO,2RRT,167,1RT,0,168,
  913. XC&     3RCOM,3RPAS,169,211,3RBRO,3RNZE,172,3RCEL,1RL,174,175,
  914. XC&     3RLOC,3RKED,174,3RSUN,0,177,
  915. XC&     3RBAR,1RE,200,3RSON,1RG,203,
  916. XC&     3RNOR,2RTH,205,3RNOR,3RTHE,205,3RSOU,2RTH,206,
  917. XC&     3RSOU,3RTHE,206,3REAS,1RT,207,3REAS,3RTER,207,
  918. XC&     3RWES,1RT,208,3RWES,3RTER,208,3RDUN,3RGEO,215/
  919. XC
  920. XC
  921. X    DATA AVOC3/29403,18600,147,30725,8720,147,
  922. X&        52430,0,148,22601,32000,148,30729,21325,151,
  923. X&        42458,14528,152,3578,7160,153,154,155,
  924. X&        8563,29659,154,155,3401,34409,156,5295,5263,157,158,
  925. X&        21003,12854,157,158,
  926. X&        20848,24281,163,25974,8000,164,19814,11200,166,
  927. X&        5014,32218,166,30735,29600,167,32000,0,168,
  928. X&        5413,25659,169,211,3935,23445,172,5012,19200,174,175,
  929. X&        19803,17804,174,31254,0,177,
  930. X&        3258,8000,200,31014,11200,203,
  931. X&        23018,32320,205,23018,32325,205,31021,32320,206,
  932. X&        31021,32325,206,8059,32000,207,8059,32218,207,
  933. X&        37019,32000,208,37019,32218,208,7254,11415,215/
  934. XC
  935. XC
  936. XC
  937. X    DATA AVOCND/-1/
  938. XC SPARSE, PAGE 4
  939. XC
  940. XC VERBS--    MAPS VERBS TO SYNTAX SLOTS
  941. XC
  942. XC EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF ONE OR MORE
  943. XC TWO WORD VERBS IN RADIX-50 FOLLOWED BY A SYNTAX WORD COUNT
  944. XC FOLLOWED BY ONE OR MORE SYNTAXES.  NOTE THAT VERBS CAN BE
  945. XC DISTINGUISHED FROM WORD COUNTS AS FOLLOWS--
  946. XC ALL VERBS ARE .GE. 1RA (1600), WHILE ALL SYNTAX WORD COUNTS
  947. XC ARE .LE. 255.
  948. XC
  949. XC SYNTAX ENTRIES CONSIST OF A FLAG WORD FOLLOWED BY 0, 1, OR 2
  950. XC OBJECT DESCRIPTIONS.  THE FLAG WORD HAS THE FOLLOWING FORMAT--
  951. XC
  952. XC BIT <14>    IF 1, SYNTAX INCLUDES DIRECT OBJECT
  953. XC BIT <13>    IF 1, SYNTAX INCLUDES INDIRECT OBJECT
  954. XC BIT <12>    IF 1, DIRECT OBJECT IS IMPLICIT (STANDARD FORM)
  955. XC BIT <11>    IF 1, DIRECT AND INDIRECT OBJECT MUST BE SWAPPED
  956. XC            AFTER SYNTAX PROCESSING
  957. XC BIT <10>    IF 1, THIS IS DEFAULT SYNTAX FOR ORPHANERY
  958. XC BITS <8:0>    VERB NUMBER FOR VAPPLI
  959. XC
  960. XC OBJECT DESCRIPTIONS CONSIST OF A FLAG WORD AND TWO FWIM WORDS.
  961. XC THE FLAG WORD HAS THE FOLLOWING FORMAT--
  962. XC
  963. XC BIT <14>    IF 1, SEARCH ADVENTURER FOR OBJECT
  964. XC BIT <13>    IF 1, SEARCH ROOM FOR OBJECT
  965. XC BIT <12>    IF 1, PARSER WILL TRY TO TAKE OBJECT
  966. XC BIT <11>    IF 1, ADVENTURER MUST HAVE OBJECT
  967. XC BIT <10>    IF 1, QUALIFYING BITS (NORMALLY -1,-1) ARE SAME
  968. XC            AS FWIM BITS
  969. XC BIT <9>    IF 1, OBJECT MUST BE REACHABLE
  970. XC BITS <8:0>    PREPOSITION NUMBER FOR SYNMCH
  971. XC
  972. XC THE FWIM WORDS HAVE THE SAME FORMAT AS THE TWO OBJECT FLAG WORDS.
  973. XC
  974. XC NOTE THAT BITS 12 AND 11 OF OBJECT DESCRIPTIONS ACTUALLY HAVE
  975. XC FOUR DISTINCT STATES--
  976. XC
  977. XC    BIT 12    BIT 11    MDLDESC        INTERPRETATION
  978. XC    ------    ------    -------        ---------------
  979. XC
  980. XC      0      0     --        NO PARSER ACTION
  981. XC      0      1     HAVE        ADVENTURER MUST HAVE OBJECT
  982. XC      1      0     TRY        TRY TO TAKE, DONT CARE IF FAIL
  983. XC      1      1     TAKE        TRY TO TAKE, CARE IF FAIL
  984. XC
  985. XC SPARSE, PAGE 5
  986. XC
  987. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  988. XC
  989. XC    DATA VVOC1/3RBRI,2REF,1,70,3RVER,3RBOS,1,71,
  990. XC&     3RSUP,3RERB,1,72,3RSTA,1RY,1,73,3RVER,3RSIO,1,74,
  991. XC&     3RSWI,1RM,3RBAT,2RHE,3RWAD,1RE,1,75,3RGER,3RONI,1,76,
  992. XC&     3RULY,3RSSE,3RODY,3RSSE,1,77,
  993. XC&     3RWEL,1RL,1,78,3RPRA,1RY,1,79,3RTRE,3RASU,1,80,
  994. XC&     3RTEM,3RPLE,1,81,3RBLA,2RST,1,82,3RSCO,2RRE,1,83,
  995. XC&     1RQ,0,3RQUI,1RT,1,84,3RHEL,1RP,1,40,3RINF,1RO,1,41,
  996. XC&     3RHIS,3RTOR,3RUPD,3RATE,1,42,3RBAC,1RK,1,43,
  997. XC&     3RSIG,1RH,3RMUM,3RBLE,1,44/
  998. XC
  999. XC
  1000. X    DATA VVOC1/3929,8240,1,70,35418,3819,1,71,
  1001. X&        31256,8722,1,72,31201,40000,1,73,35418,30775,1,74,
  1002. X&        31329,20800,3260,13000,36844,8000,1,75,11418,24569,1,76,
  1003. X&        34105,31165,24185,31165,1,77,
  1004. X&        37012,19200,1,78,26321,40000,1,79,32725,2381,1,80,
  1005. X&        32213,26085,1,81,3681,31200,1,82,30535,29000,1,83,
  1006. X&        27200,0,28049,32000,1,84,13012,25600,1,40,
  1007. X&        14966,24000,1,41,
  1008. X&        13179,32618,34244,2405,1,42,3243,17600,1,43,
  1009. X&        30767,12800,21653,3685,1,44/
  1010. XC
  1011. XC
  1012. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1013. XC
  1014. XC    DATA VVOC1A/3RCHO,2RMP,3RLOS,1RE,3RBAR,1RF,1,45,
  1015. XC&     3RDUN,3RGEO,1,46,3RFRO,3RBOZ,1,47,3RFOO,0,3RBLE,3RTCH,
  1016. XC&     3RBAR,0,1,48,3RREP,3RENT,1,49,3RHOU,1RS,3RSCH,3REDU,1,50,
  1017. XC&     3RWIN,0,1,51,3RYEL,1RL,3RSCR,3REAM,3RSHO,2RUT,1,52,
  1018. XC&     3RHOP,0,3RSKI,1RP,1,53,3RFUC,1RK,3RSHI,1RT,3RDAM,1RN,
  1019. XC&     3RCUR,2RSE,1,54,3RZOR,1RK,1,55,3RGRA,3RNIT,1,"50070,
  1020. XC&     3RSAV,1RE,1,149,3RRES,3RTOR,1,150,3RTIM,1RE,1,90,
  1021. XC&     3RDIA,3RGNO,1,94,3REXO,3RRCI,1,105,3RINV,3RENT,
  1022. XC&     1RI,0,1,133,3RWAI,1RT,1,128,
  1023. XC&     3RINC,3RANT,1,95,3RANS,3RWER,1,96/
  1024. XC
  1025. XC
  1026. XC
  1027. X    DATA VVOC1A/5135,21440,19819,8000,3258,9600,1,45,
  1028. X&        7254,11415,1,46,10335,3826,1,47,10215,0,3685,32128,
  1029. X&        3258,0,1,48,29016,8580,1,49,13421,29560,30528,8181,1,50,
  1030. X&        37174,0,1,51,40212,19200,30538,8053,30735,34400,1,52,
  1031. X&        13416,0,30849,25600,1,53,
  1032. X&        10443,17600,30729,32000,6453,22400,5658,30600,1,54,
  1033. X&        42218,17600,1,55,11921,22780,1,o"50070",
  1034. X&        30462,8000,1,149,29019,32618,1,150,32373,8000,1,90,
  1035. X&        6761,11775,1,94,8975,28929,1,105,14982,8580,
  1036. X&        14400,0,1,133,36849,32000,1,128,
  1037. X&        14963,2180,1,95,2179,37018,1,96/
  1038. XC
  1039. XC
  1040. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1041. XC
  1042. XC    DATA VVOC1B/3RAGA,2RIN,1,57,3RNOO,2RBJ,1,58,
  1043. XC&     3RBUG,0,3RGRI,2RPE,3RCOM,3RPLA,1,59,
  1044. XC&     3RFEA,3RTUR,3RCOM,3RMEN,3RSUG,3RGES,3RIDE,1RA,1,60,
  1045. XC&     3RROO,1RM,1,65,3ROBJ,3RECT,1,66,3RRNA,2RME,1,67/
  1046. XC
  1047. XC
  1048. XC
  1049. X    DATA VVOC1B/1881,14960,1,57,23015,3600,1,58,
  1050. X&        4047,0,11929,25800,5413,26081,1,59,
  1051. X&        9801,32858,5413,21014,31247,11419,14565,1600,1,60,
  1052. X&        29415,20800,1,65,24090,8140,1,66,29361,21000,1,67/
  1053. XC
  1054. XC
  1055. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1056. XC
  1057. XC    DATA VVOC2/3RDEF,3RLAT,1,"50147,
  1058. XC&     3RDES,3RCRI,3RWHA,1RT,3REXA,3RMIN,1,"50170,
  1059. XC&     3RFIL,1RL,11,"60206,"61000,"200,0,"61002,"400,0,
  1060. XC&        "40206,"61000,"200,0,
  1061. XC&     3RFIN,1RD,3RSEE,1RK,3RWHE,2RRE,3RSEE,0,4,"40177,"60000,-1,-1,
  1062. XC&     3RFOL,3RLOW,2,"125,"50125,
  1063. XC&     3RKIC,1RK,3RBIT,1RE,3RTAU,2RNT,1,"50153,3RLOW,2RER,1,"50156,
  1064. XC&     3RPUS,1RH,3RPRE,2RSS,1,"50160,3RRIN,1RG,3RPEA,1RL,1,"50127,
  1065. XC&     3RRUB,0,3RCAR,3RESS,3RTOU,2RCH,3RFON,3RDLE,1,"50157,
  1066. XC&     3RSHA,2RKE,1,"50171,3RSPI,1RN,1,"50201,
  1067. XC&     3RUNT,2RIE,3RFRE,1RE,1,"50161,3RWAL,1RK,9,"50216,
  1068. XC&        "40126,"61002,-1,-1,"40126,"61005,-1,-1/
  1069. XC
  1070. XC
  1071. XC
  1072. X    DATA VVOC2/6606,19260,1,o"50147",
  1073. X&        6619,5529,37121,32000,8961,21174,1,o"50170",
  1074. X&        9972,19200,11,
  1075. X&            o"60206",o"61000",o"200",0,o"61002",o"400",0,
  1076. X&            o"40206",o"61000",o"200",0,
  1077. X&        9974,6400,30605,17600,37125,29000,30605,0,4,
  1078. X&            o"40177",o"60000",-1,-1,
  1079. X&        10212,19823,2,o"125",o"50125",
  1080. X&        17963,17600,3580,8000,32061,23200,1,o"50153",
  1081. X&        19823,8720,1,o"50156",
  1082. X&        26459,12800,26325,31160,1,o"50160",
  1083. X&        29174,11200,25801,19200,1,o"50127",
  1084. X&        29642,0,4858,8779,32621,5120,10214,6885,1,o"50157",
  1085. X&        30721,17800,1,o"50171",31049,22400,1,o"50201",
  1086. X&        34180,14600,10325,8000,1,o"50161",
  1087. X&        36852,17600,9,o"50216",o"40126",o"61002",-1,-1,
  1088. X&            o"40126",o"61005",-1,-1/
  1089. XC
  1090. XC
  1091. XC
  1092. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1093. XC
  1094. XC    DATA VVOC3/3RATT,3RACK,3RFIG,2RHT,3RINJ,3RURE,3RHIT,0,3RHUR,1RT,
  1095. XC&        7,"60215,"21000,0,"200,"44002,0,"1000,
  1096. XC&     3RBOA,2RRD,4,"40202,"21000,0,"2,
  1097. XC&     3RBRU,2RSH,3RCLE,2RAN,5,"52130,"70130,"61002,-1,-1,
  1098. XC&     3RBUR,1RN,3RIGN,3RITE,3RINC,3RINE,7,"60211,"61000,"20,0,
  1099. XC&        "64002,"10,0,
  1100. XC&     3RCLI,2RMB,12,"40235,"20007,0,"4000,
  1101. XC&        "40236,"20006,0,"4000,"40234,"20000,0,"4000,
  1102. XC&     3RCLO,2RSE,4,"40176,"61000,"10200,0,
  1103. XC&     3RDIG,0,4,"40131,"44002,"4,0,
  1104. XC&     3RDIS,3REMB,4,"40203,"20000,0,"2,
  1105. XC&     3RDRI,2RNK,3RIMB,3RIBE,3RSWA,3RLLO,4,"40210,"61000,"400,0,
  1106. XC&     3RDRO,1RP,3RREL,3REAS,11,"42221,"41000,-1,-1,
  1107. XC&        "60221,"41000,-1,-1,"61005,-1,-1,
  1108. XC&     3REAT,0,3RCON,3RSUM,3RGOB,3RBLE,3RMUN,2RCH,3RTAS,2RTE,
  1109. XC&        4,"40207,"75000,"2000,0,
  1110. XC&     3REXT,3RING,3RDOU,2RSE,4,"40174,"75000,"100,0/
  1111. XC
  1112. XC
  1113. X    DATA VVOC3/2420,1731,9967,13600,14970,34325,13180,0,13658,32000,
  1114. X&            7,o"60215",o"21000",0,o"200",o"44002",0,o"1000",
  1115. X&        3801,28960,4,o"40202",o"21000",0,o"2",
  1116. X&        3941,30720,5285,2160,5,o"52130",o"70130",o"61002",-1,-1,
  1117. X&        4058,22400,14694,15205,14963,14965,
  1118. X&            7,o"60211",o"61000",o"20",0,o"64002",o"10",0,
  1119. X&        5289,20880,12,o"40235",o"20007",0,o"4000",o"40236",
  1120. X&            o"20006",0,o"4000",o"40234",o"20000",0,o"4000",
  1121. X&        5295,30600,4,o"40176",o"61000",o"10200",0,
  1122. X&        6767,0,4,o"40131",o"44002",o"4",0,
  1123. X&        6779,8522,4,o"40203",o"20000",0,o"2",
  1124. X&        7129,22840,14922,14485,31321,19695,
  1125. X&            4,o"40210",o"61000",o"400",0,
  1126. X&        7135,25600,29012,8059,11,o"42221",o"41000",-1,-1,
  1127. X&            o"60221",o"41000",-1,-1,o"61005",-1,-1,
  1128. X&        8060,0,5414,31253,11802,3685,21654,5120,32059,32200,
  1129. X&            4,o"40207",o"75000",o"2000",0,
  1130. X&        8980,14967,7021,30600,4,o"40174",o"75000",o"100",0/
  1131. XC
  1132. XC
  1133. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1134. XC
  1135. XC    DATA VVOC4/3RGIV,1RE,3RHAN,1RD,3RDON,3RATE,11,"72222,"21004,
  1136. XC&        "40,0,"64222,"21000,"40,0,"61000,-1,-1,
  1137. XC&     3RHEL,2RLO,2RHI,0,2,"2227,"50227,
  1138. XC&     3RBLO,1RW,15,"62146,"61007,-1,-1,"61002,"4,0,
  1139. XC&        "40160,"61007,-1,-1,"40165,"61005,-1,-1,
  1140. XC&     3RINF,3RLAT,4,"70146,"61002,"4,0,
  1141. XC&     3RJUM,1RP,3RLEA,1RP,5,"133,"40133,"61001,-1,-1,
  1142. XC&     3RKIL,1RL,3RMUR,3RDER,3RSLA,1RY,3RSTA,1RB,3RDIS,3RPAT,
  1143. XC&        7,"60213,"21000,0,"200,
  1144. XC&        "44002,0,"1000,
  1145. XC&     3RKNO,2RCK,3RRAP,0,12,"42166,"61003,-1,-1,
  1146. XC&        "40166,"61012,-1,-1,"40215,"23006,"40,0,
  1147. XC&     3RLIG,2RHT,11,"42173,"75000,"100,0,
  1148. XC&        "60211,"61000,"100,0,"54002,"10,0,
  1149. XC&     3RLOC,1RK,4,"40134,"20000,-1,-1/
  1150. XC
  1151. XC
  1152. XC
  1153. X    DATA VVOC4/11582,8000,12854,6400,7014,2405,11,o"72222",o"21004",
  1154. X&            o"40",0,o"64222",o"21000",o"40",
  1155. X&            0,o"61000",-1,-1,
  1156. X&        13012,19800,13160,0,2,o"2227",o"50227",
  1157. X&        3695,36800,15,o"62146",o"61007",-1,-1,o"61002",o"4",0,
  1158. X&            o"40160",o"61007",-1,-1,o"40165",o"61005",-1,-1,
  1159. X&        14966,19260,4,o"70146",o"61002",o"4",0,
  1160. X&        16853,25600,19401,25600,
  1161. X&            5,o"133",o"40133",o"61001",-1,-1,
  1162. X&        17972,19200,21658,6618,30881,40000,31201,3200,
  1163. X&            6779,25660,7,o"60213",o"21000",0,o"200",
  1164. X&            o"44002",0,o"1000",
  1165. X&        18175,5240,28856,0,12,o"42166",o"61003",-1,-1,o"40166",
  1166. X&            o"61012",-1,-1,o"40215",o"23006",o"40",0,
  1167. X&        19567,13600,11,o"42173",o"75000",o"100",0,o"60211",
  1168. X&            o"61000",o"100",0,o"54002",o"10",0,
  1169. X&        19803,17600,4,o"40134",o"20000",-1,-1/
  1170. XC
  1171. XC
  1172. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1173. XC
  1174. XC    DATA VVOC5/3RLOO,1RK,1RL,0,3RSTA,2RRE,3RGAZ,1RE,
  1175. XC&        13,"167,"40167,"60003,-1,-1,
  1176. XC&        "40231,"61010,-1,-1,"40230,"60005,-1,-1,
  1177. XC&     3RMEL,1RT,3RLIQ,3RUIF,4,"70145,"61002,"10,0,
  1178. XC&     3RMOV,1RE,4,"40172,"20000,-1,-1,
  1179. XC&     3RPUL,1RL,3RTUG,0,8,"42172,"21000,-1,-1,
  1180. XC&        "40172,"21012,-1,-1,
  1181. XC&     3RMUN,1RG,3RHAC,1RK,3RFRO,1RB,3RDAM,3RAGE,
  1182. XC&        5,"52212,"70212,"44002,-1,-1,
  1183. XC&     3ROPE,1RN,11,"42175,"61000,"10200,0,
  1184. XC&        "60175,"61000,"10200,0,"54002,"4,"1000,
  1185. XC&     3RPIC,1RK,4,"40204,"61007,"20000,"40,
  1186. XC&     3RPLU,1RG,3RGLU,1RE,3RPAT,2RCH,4,"70152,"61002,-1,-1,
  1187. XC&     3RPOK,1RE,3RBRE,2RAK,3RJAB,0,7,"60212,"21000,0,"200,
  1188. XC&        "44002,0,"1000,
  1189. XC&     3RPOU,1RR,3RSPI,2RLL,11,"42223,"42000,"400,0,
  1190. XC&        "60223,"42000,"400,0,"60005,-1,-1,
  1191. XC&        3RPUM,1RP,4,"60232,"60007,-1,-1/
  1192. XC
  1193. XC
  1194. XC
  1195. X    DATA VVOC5/19815,17600,19200,0,31201,29000,11266,8000,
  1196. X&            13,o"167",o"40167",o"60003",-1,-1,
  1197. X&            o"40231",o"61010",-1,-1,o"40230",o"60005",-1,-1,
  1198. X&        21012,32000,19577,33966,4,o"70145",o"61002",o"10",0,
  1199. X&        21422,8000,4,o"40172",o"20000",-1,-1,
  1200. X&        26452,19200,32847,0,8,o"42172",o"21000",-1,-1,
  1201. X&            o"40172",o"21012",-1,-1,
  1202. X&        21654,11200,12843,17600,10335,3200,6453,1885,
  1203. X&            5,o"52212",o"70212",o"44002",-1,-1,
  1204. X&        24645,22400,11,o"42175",o"61000",o"10200",0,o"60175",
  1205. X&            o"61000",o"10200",0,o"54002",o"4",o"1000",
  1206. X&        25963,17600,4,o"40204",o"61007",o"20000",o"40",
  1207. X&        26101,11200,11701,8000,25660,5120,
  1208. X&            4,o"70152",o"61002",-1,-1,
  1209. X&        26211,8000,3925,2040,16042,0,7,o"60212",o"21000",
  1210. X&            0,o"200",o"44002",0,o"1000",
  1211. X&        26221,28800,31049,19680,11,o"42223",o"42000",o"400",0,
  1212. X&            o"60223",o"42000",o"400",0,o"60005",-1,-1,
  1213. X&        26453,25600,4,o"60232",o"60007",-1,-1/
  1214. XC
  1215. XC
  1216. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1217. XC
  1218. XC    DATA VVOC6/3RPUT,0,3RINS,3RERT,3RSTU,2RFF,3RPLA,2RCE,
  1219. XC&        8,"72220,"61005,-1,-1,
  1220. XC&        "40221,"61006,-1,-1,
  1221. XC&     3RRAI,2RSE,3RLIF,1RT,5,"52155,"40155,"61007,-1,-1,
  1222. XC&     3RREA,1RD,3RSKI,1RM,11,"42144,"71000,"40000,0,
  1223. XC&        "60144,"71000,"40000,0,"61002,-1,-1,
  1224. XC&     3RSTR,3RIKE,12,"60215,"23000,"40,0,
  1225. XC&        "44002,0,"1000,"42215,"23000,"40,0,"50173,
  1226. XC&     3RSWI,2RNG,3RTHR,3RUST,7,"60214,"44000,0,"1000,
  1227. XC&        "21003,0,"200,
  1228. XC&     3RTAK,1RE,3RGET,0,3RHOL,1RD,3RCAR,2RRY,3RREM,3ROVE,
  1229. XC&        4,"40204,"61000,"20000,"40,
  1230. XC&     3RTEL,1RL,3RCOM,3RMAN,3RREQ,3RUES,4,"40217,"20000,0,"2000,
  1231. XC&     3RTHR,2ROW,3RHUR,1RL,3RCHU,2RCK,14,"60224,"44000,-1,-1,
  1232. XC&        "21003,"40,0,"60224,"44000,-1,-1,"21002,"40,0/
  1233. XC
  1234. XC
  1235. XC
  1236. X    DATA VVOC6/26460,0,14979,8740,31221,9840,26081,5000,
  1237. X&            8,o"72220",o"61005",-1,-1,
  1238. X&            o"40221",o"61006",-1,-1,
  1239. X&        28849,30600,19566,32000,
  1240. X&            5,o"52155",o"40155",o"61007",-1,-1,
  1241. X&        29001,6400,30849,20800,11,o"42144",o"71000",o"40000",0,
  1242. X&            o"60144",o"71000",o"40000",0,o"61002",-1,-1,
  1243. X&        31218,14845,12,o"60215",o"23000",o"40",0,o"44002",
  1244. X&            0,o"1000",o"42215",o"23000",o"40",0,o"50173",
  1245. X&        31329,22680,32338,34380,7,o"60214",o"44000",0,o"1000",
  1246. X&            o"21003",0,o"200",
  1247. X&        32051,8000,11420,0,13412,6400,4858,29800,29013,24885,
  1248. X&            4,o"40204",o"61000",o"20000",o"40",
  1249. X&        32212,19200,5413,20854,29017,33819,
  1250. X&            4,o"40217",o"20000",0,o"2000",
  1251. X&        32338,24920,13658,19200,5141,5240,14,o"60224",o"44000",
  1252. X&            -1,-1,o"21003",o"40",0,o"60224",o"44000",
  1253. X&            -1,-1,o"21002",o"40",0/
  1254. XC
  1255. XC
  1256. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1257. XC
  1258. XC    DATA VVOC7/3RTIE,0,3RFAS,3RTEN,11,"70162,"61004,-1,-1,
  1259. XC&        "60163,"21000,"40,0,"65002,"4,0,
  1260. XC&     3RTUR,1RN,3RSET,0,22,"62164,"61000,"2,0,
  1261. XC&        "64002,"4,0,
  1262. XC&        "40173,"75012,"100,0,"40174,"75013,"100,0,
  1263. XC&        "60237,"61000,"2,0,"20004,-1,-1,
  1264. XC&     3RUNL,3ROCK,7,"60135,"21000,-1,-1,
  1265. XC&        "74002,"4,0,
  1266. XC&     3RWAK,1RE,3RSUR,3RPRI,3RALA,2RRM,3RSTA,3RRTL,
  1267. XC&        8,"42150,"20000,"40,0,
  1268. XC&        "40150,"20007,"40,0,
  1269. XC&     3RWAV,1RE,3RFLA,3RUNT,3RBRA,3RNDI,4,"40154,"40000,-1,-1,
  1270. XC&     3RWIN,1RD,5,"50233,"40233,"61007,-1,-1/
  1271. XC
  1272. XC
  1273. XC
  1274. X    DATA VVOC7/32365,0,9659,32214,11,o"70162",o"61004",-1,-1,
  1275. X&        o"60163",o"21000",o"40",0,o"65002",o"4",0,
  1276. X&     32858,22400,30620,0,22,o"62164",o"61000",o"2",0,
  1277. X&        o"64002",o"4",0,
  1278. X&        o"40173",o"75012",o"100",0,o"40174",o"75013",o"100",0,
  1279. X&        o"60237",o"61000",o"2",0,o"20004",-1,-1,
  1280. X&     34172,24131,7,o"60135",o"21000",-1,-1,
  1281. X&        o"74002",o"4",0,
  1282. X&     36851,8000,31258,26329,2081,29320,31201,29612,
  1283. X&        8,o"42150",o"20000",o"40",0,
  1284. X&        o"40150",o"20007",o"40",0,
  1285. X&     36862,8000,10081,34180,3921,22569,4,o"40154",o"40000",-1,-1,
  1286. X&     37174,6400,5,o"50233",o"40233",o"61007",-1,-1/
  1287. XC
  1288. XC
  1289. X    DATA VVOCND/-1/
  1290. XC SPARSE, PAGE 6
  1291. XC
  1292. XC OBJECTS--    MAPS OBJECTS TO OBJECT INDICES
  1293. XC
  1294. XC SAME FORMAT AS AVOC.
  1295. XC
  1296. XC
  1297. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1298. XC
  1299. XC    DATA OVOC1/3RBAG,0,1,25,100,3RSAC,1RK,1,3RGAR,3RLIC,2,
  1300. XC&     3RCLO,2RVE,2,3RFOO,1RD,3,3RSAN,3RDWI,3,3RLUN,2RCH,3,
  1301. XC&     3RDIN,3RNER,3,
  1302. XC&     3RGUN,1RK,4,55,3RPIE,2RCE,4,143,186,3RSLA,1RG,4,3RCOA,1RL,5,
  1303. XC&     3RPIL,1RE,5,38,78,87,88,122,3RHEA,1RP,5,
  1304. XC&     3RFIG,3RURI,6,
  1305. XC&     3RMAC,3RHIN,7,3RPDP,2R10,7,3RPDP,2R11,7,3RDRY,2RER,7,
  1306. XC&     3RLID,0,7,3RDIA,3RMON,8,3RCAS,1RE,9,123,3RBOT,3RTLE,10,121,
  1307. XC&     3RCON,3RTAI,10,3RWAT,2RER,11,209,3RQUA,3RNTI,11,209,
  1308. XC&     3RLIQ,3RUID,11,209,3RH2O,0,11,209,
  1309. XC&     3RROP,1RE,12,101,3RHEM,1RP,12,3RCOI,1RL,12,110,
  1310. XC&     3RKNI,2RFE,13,21,3RBLA,2RDE,13,14,3RSWO,2RRD,14,3RORC,3RHRI,14,
  1311. XC&     3RGLA,3RMDR,14,3RLAM,1RP,15,16,22,3RLAN,3RTER,15,16,22,
  1312. XC&     3RRUG,0,17,3RCAR,3RPET,17,
  1313. XC&     3RLEA,3RVES,18,3RLEA,1RF,18,3RTRO,2RLL,19,
  1314. XC&     3RAXE,0,20,3RDIN,3RNER,3/
  1315. XC
  1316. XC
  1317. X    DATA OVOC1/3247,0,1,25,100,30443,17600,1,11258,19563,2,
  1318. X&     5295,35400,2,10215,6400,3,30454,7329,3,20054,5120,3,
  1319. X&     6774,22618,3,
  1320. X&     12054,17600,4,55,25965,5000,4,143,186,30881,11200,4,5401,19200,5,
  1321. X&     25972,8000,5,38,78,87,88,122,13001,25600,5,
  1322. X&     9967,34329,6,
  1323. X&     20843,13174,7,25776,50800,7,25776,50840,7,7145,8720,7,
  1324. X&     19564,0,7,6761,21414,8,4859,8000,9,123,3820,32485,10,121,
  1325. X&     5414,32049,10,36860,8720,11,209,28041,23209,11,209,
  1326. X&     19577,33964,11,209,14095,0,11,209,
  1327. X&     29416,8000,12,101, 13013,25600,12,5409,19200,12,110,
  1328. X&     18169,9800,13,21,3681,6600,13,14,31335,28960,14,24723,13529,14,
  1329. X&     11681,20978,14,19253,25600,15,16,22,19254,32218,15,16,22,
  1330. X&     29647,0,17,4858,25820,17,
  1331. X&     19401,35419,18,19401,9600,18,32735,19680,19,
  1332. X&     2565,0,20,6774,22618,3/
  1333. XC
  1334. XC
  1335. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1336. XC
  1337. XC    DATA OVOC2/3RKEY,1RS,23,3RKEY,0,23,
  1338. XC&     3RSET,0,23,3RBON,2RES,24,3RSKE,3RLET,24,3RBOD,1RY,24,73,
  1339. XC&     3RCOI,2RNS,25,3RBAR,0,26,165,168,
  1340. XC&     3RNEC,3RKLA,27,3RPEA,3RRLS,27,3RMIR,3RROR,28,29,212,
  1341. XC&     3RICE,0,30,3RMAS,1RS,30,3RGLA,3RCIE,30,3RRUB,1RY,31,
  1342. XC&     3RTRI,3RDEN,32,3RFOR,1RK,32,3RCOF,3RFIN,33,3RCAS,3RKET,33,
  1343. XC&     3RTOR,2RCH,34,3RCAG,1RE,35,36,124,125,3RDUM,3RBWA,35,36,
  1344. XC&     3RBAS,3RKET,35,36,98,113,3RBRA,3RCEL,37,
  1345. XC&     3RJEW,2REL,37,3RTIM,3RBER,38,3RBOX,0,39,53,105,3RSTR,3RADI,40,
  1346. XC&     3RVIO,3RLIN,40,3RENG,3RRAV,41,3RINS,3RCRI,41,44,3RGHO,2RST,42,
  1347. XC&     3RSPI,3RRIT,42,3RFIE,2RND,42,3RGRA,2RIL,43,3RPRA,3RYER,44,47,
  1348. XC&     3RTRU,2RNK,45,3RCHE,2RST,45,3RBEL,1RL,46,
  1349. XC&     3RBOO,1RK,47,49,114,115,116,117,3RBIB,2RLE,47/
  1350. XC
  1351. XC
  1352. X    DATA OVOC2/17825,30400,23,17825,0,23,
  1353. X&     30620,0,23,3814,8760,24,30845,19420,24,3804,40000,24,73,
  1354. X&     5409,23160,25,3258,0,26,165,168,
  1355. X&     22603,18081,27,25801,29299,27,21178,29418,28,29,212,
  1356. X&     14525,0,30,20859,30400,30,11681,5165,30,29642,40000,31,
  1357. X&     32729,6614,32,10218,17600,32,5406,9974,33,4859,17820,33,
  1358. X&     32618,5120,34,4847,8000,35,36,124,125,7253,4121,35,36,
  1359. X&     3259,17820,35,36,98,113,3921,5012,37,
  1360. X&     16223,8480,37,32373,3418,38,3824,0,39,53,105,31218,1769,40,
  1361. X&     35575,19574,40,8567,28862,41,14979,5529,41,44,11535,31200,42,
  1362. X&     31049,29180,42,9965,22560,42,11921,14880,43,26321,40218,44,47,
  1363. X&     32741,22840,45,5125,31200,45,3412,19200,46,
  1364. X&     3815,17600,47,49,114,115,116,117,3562,19400,47/
  1365. XC
  1366. XC
  1367. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1368. XC
  1369. XC    DATA OVOC3/3RGOO,3RDBO,47,3RCAN,3RDLE,48,3RPAI,1RR,48,
  1370. XC&     3RGUI,3RDEB,49,
  1371. XC&     3RGUI,2RDE,49,3RPAP,2RER,50,122,143,186,3RNEW,3RSPA,50,
  1372. XC&     3RISS,2RUE,50,3RREP,3RORT,50,3RMAG,3RAZI,50,3RNEW,1RS,50,
  1373. XC&     3RMAT,3RCHB,51,
  1374. XC&     3RMAT,2RCH,51,3RMAT,3RCHE,51,3RADV,3RERT,52,3RPAM,3RPHL,52,
  1375. XC&     3RLEA,3RFLE,52,3RBOO,3RKLE,52,3RMAI,3RLBO,53,
  1376. XC&     3RTUB,1RE,54,3RTOO,3RTHP,54,3RPUT,2RTY,55,3RMAT,3RERI,55,
  1377. XC&     3RGLU,1RE,55,3RWRE,3RNCH,56,3RSCR,3REWD,57,
  1378. XC&     3RCYC,3RLOP,58,3RMON,3RSTE,58,3RCHA,3RLIC,59,3RCUP,0,59,
  1379. XC&     3RGOB,3RLET,59,3RPAI,3RNTI,60,149,3RART,0,60,149,
  1380. XC&     3RCAN,3RVAS,60,3RPIC,3RTUR,60,3RWOR,1RK,60,
  1381. XC&     3RMAS,3RTER,60,215,3RTHI,2REF,61,3RROB,3RBER,61,
  1382. XC&     3RCRI,3RMIN,61,3RBAN,3RDIT,61,3RCRO,2ROK,61,3RGEN,1RT,61,
  1383. XC&     3RGEN,3RTLE,61,3RMAN,0,61,3RTHU,1RG,61,
  1384. XC&     3RBAG,3RMAN,61,3RSTI,3RLLE,62/
  1385. XC
  1386. XC
  1387. X    DATA OVOC3/11815,6495,47,4854,6885,48,25649,28800,48,
  1388. X&     12049,6602,49,
  1389. X&     12049,6600,49,256656,8720,50,122,143,186,22623,31041,50,
  1390. X&     15179,33800,50,29016,24740,50,20847,2649,50,22623,30400,50,
  1391. X&     20860,5122,51,
  1392. X&     20860,5120,51,20860,5125,51,1782,8740,52,25653,25932,52,
  1393. X&     19401,10085,52,3815,18085,52,20849,19295,53,
  1394. X&     32842,8000,54,32615,32336,54,26460,33000,55,20860,8729,55,
  1395. X&     11701,8000,55,37525,22528,56,30538,8924,57,
  1396. X&     5803,19816,58,21414,31205,58,5121,19563,59,5656,0,59,
  1397. X&     11802,19420,59,25649,23209,60,149,2340,0,60,149,
  1398. X&     4854,35259,60,25963,32858,60,37418,17600,60,
  1399. X&     20859,32218,60,215,32329,8240,61,29402,3418,61,
  1400. X&     5529,21175,61,3254,6780,61,5535,24440,61,11414,32000,61,
  1401. X&     11414,32485,61,20854,0,61,32341,11200,61,
  1402. X&     3247,20854,61,31209,19685,62/
  1403. XC
  1404. XC
  1405. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1406. XC
  1407. XC    DATA OVOC4/3RWIN,3RDOW,63,3RBOL,1RT,64,3RNUT,0,64,
  1408. XC&     3RGRA,2RTE,65,3RGRA,3RTIN,65,3RDOO,1RR,66,67,68,69,
  1409. XC&     164,172,173,174,175,189,3RTRA,3RPDO,66,
  1410. XC&     3RTRA,3RP$D,66,3RSWI,3RTCH,70,76,79,80,81,82,170,
  1411. XC&     3RHEA,1RD,71,120,3RCOR,3RPSE,72,73,3RBOD,3RIES,73,
  1412. XC&     3RDAM,0,74,3RGAT,2RES,74,76,3RGAT,1RE,74,76,
  1413. XC&     3RFCD,0,74,3RRAI,1RL,75,3RRAI,3RLIN,75,
  1414. XC&     3RBUT,3RTON,76,79,80,81,82,127,128,129,170,176,
  1415. XC&     3RBUB,3RBLE,77,3RLEA,1RK,78,3RDRI,1RP,78,
  1416. XC&     3RHOL,1RE,78,107,
  1417. XC&     3RBAT,0,83,3RRAI,3RNBO,84,
  1418. XC&     3RPOT,0,85,3RSTA,3RTUE,86,3RSCU,3RLPT,86,3RROC,1RK,86,
  1419. XC&     3RBOA,1RT,87,88,90,3RPLA,3RSTI,87,88,
  1420. XC&     3RPUM,1RP,89/
  1421. XC
  1422. XC
  1423. X    DATA OVOC4/37174,7023,63,3812,32000,64,23260,0,64,
  1424. X&     11921,32200,65,11921,32374,65,7015,28800,66,67,68,69,
  1425. X&     164,172,173,174,175,189,32721,25775,66,
  1426. X&     32721,26684,66,31329,32128,70,76,79,80,81,82,170,
  1427. X&     13001,6400,71,120,5418,26365,72,73,3804,14619,73,
  1428. X&     6453,0,74,11260,8760,74,76,11260,8000,74,76,
  1429. X&     9724,0,74,28849,19200,75,28849,19574,75,
  1430. X&     4060,32614,76,79,80,81,82,127,128,129,170,176,
  1431. X&     4042,3685,77,19401,17600,78,7129,25600,78,
  1432. X&     13412,8000,78,107,
  1433. X&     3260,0,83,28849,22495,84,
  1434. X&     26220,0,85,31201,32845,86,30541,19860,86,29403,17600,86,
  1435. X&     3801,32000,87,88,90,26081,31209,87,88,
  1436. X&     26453,25600,89/
  1437. XC
  1438. XC
  1439. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1440. XC
  1441. XC    DATA OVOC5/3RAIR,3RPUM,89,3RAIR,3R$PU,89,3RLAB,2REL,91,112,
  1442. XC&     3RFIN,3REPR,91,3RSTI,2RCK,92,3RBAR,3RREL,93,3RBUO,1RY,94,
  1443. XC&     3REME,3RRAL,95,3RSHO,3RVEL,96,3RGUA,2RNO,97,3RCRA,1RP,97,
  1444. XC&     3RSHI,1RT,97,3RHUN,1RK,97,3RBAL,3RLOO,98,113,
  1445. XC&     3RREC,3REPT,99,3RWIR,1RE,101,110,
  1446. XC&     3RHOO,1RK,102,103,3RZOR,3RKMI,104,148,3RCOI,1RN,104,
  1447. XC&     3RSAF,1RE,105,3RCAR,1RD,106,188,3RNOT,1RE,106,186,
  1448. XC&     3RSLO,1RT,107,187,3RCRO,2RWN,108,3RBRI,2RCK,109,
  1449. XC&     3RFUS,1RE,110,3RGNO,2RME,111,152,
  1450. XC&     3RSTA,2RMP,118,
  1451. XC&     3RTOM,1RB,119,3RCRY,2RPT,119,3RGRA,2RVE,119,3RHEA,2RDS,120,
  1452. XC&     3RPOL,2RES,120,3RIMP,3RLEM,120/
  1453. XC
  1454. XC
  1455. X    DATA OVOC5/1978,26453,89,1978,43861,89,19242,8480,91,112,
  1456. X&     9974,8658,91,31209,5240,92,3258,29012,93,4055,40000,94,
  1457. X&     8525,28852,95,30735,35412,96,12041,23000,97,5521,25600,97,
  1458. X&     30729,32000,97,13654,17600,97,3252,19815,98,113,
  1459. X&     29003,8660,99,37178,8000,101,110,
  1460. X&     13415,17600,102,103,42218,18129,104,148,5409,22400,104,
  1461. X&     30446,8000,105,4858,6400,106,188,23020,8000,106,186,
  1462. X&     30895,32000,107,187,5535,37360,108,3929,5240,109,
  1463. X&     10459,8000,110,11775,21000,111,152,
  1464. X&     31201,21440,118,
  1465. X&     32613,3200,119,5545,26400,119,11921,35400,119,13001,7160,120,
  1466. X&     26212,8760,120,14936,19413,120/
  1467. XC
  1468. XC
  1469. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1470. XC
  1471. XC    DATA OVOC6/3RLOS,3RERS,120,3RCOK,2RES,121,
  1472. XC&     3RLIS,3RTIN,122,3RSTA,2RCK,122,
  1473. XC&     3RPRI,3RNTO,122,
  1474. XC&     3RSPH,3RERE,126,3RBAL,1RL,126,
  1475. XC&     3RETC,3RHIN,130,131,
  1476. XC&     3RWAL,2RLS,130,131,198,205,206,207,208,3RWAL,1RL,
  1477. XC&     130,131,159,160,161,162,163,164,198,205,206,207,208,
  1478. XC&     3RFLA,2RSK,132,3RPOO,1RL,133,3RSEW,3RAGE,133,
  1479. XC&     3RTIN,0,134,3RSAF,3RFRO,134,3RSPI,3RCES,134,3RTAB,2RLE,135,
  1480. XC&     3RPOS,1RT,136,166,167,3RPOS,2RTS,136,3RBUC,3RKET,137,
  1481. XC&     3RCAK,1RE,138,139,140,141,3RICI,2RNG,139,140,141,
  1482. XC&     3RROB,2ROT,142,3RROB,2RBY,142,
  1483. XC&     3RC3P,1RO,142,3RR2D,1R2,142/
  1484. XC
  1485. XC
  1486. X    DATA OVOC6/19819,8739,120,5411,8760,121,
  1487. X&     19579,32374,122,31201,5240,122,
  1488. X&     26329,23215,122,
  1489. X&     31048,8725,126,3252,19200,126,
  1490. X&     8803,13174,130,131,
  1491. X&     36852,19960,130,131,198,205,206,207,208,36852,19200,
  1492. X&     130,131,159,160,161,162,163,164,198,205,206,207,208,
  1493. X&     10081,30840,132,26215,19200,133,30623,1885,133,
  1494. X&     32374,0,134,30446,10335,134,31049,5019,134,32042,19400,135,
  1495. X&     26219,32000,136,166,167,26219,32760,136,4043,17820,137,
  1496. X&     4851,8000,138,139,140,141,14529,22680,139,140,141,
  1497. X&     29402,24800,142,29402,4200,142,
  1498. X&     6136,24000,142,30084,51200,142/
  1499. XC
  1500. XC
  1501. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1502. XC
  1503. XC    DATA OVOC6A/3RPAN,2REL,159,160,161,162,163,164,213,
  1504. XC&     3RPOL,1RE,166,167,3RTBA,1RR,168,3RT$B,2RAR,168,
  1505. XC&     3RARR,2ROW,169,3RPOI,2RNT,169,3RBEA,1RM,171,
  1506. XC&     3RDIA,1RL,177,3RSUN,3RDIA,177,1R1,0,178,
  1507. XC&     3RONE,0,178,1R2,0,179,3RTWO,0,179,1R3,0,180,
  1508. XC&     3RTHR,2REE,180,1R4,0,181,3RFOU,1RR,181,1R5,0,182,
  1509. XC&     3RFIV,1RE,182,1R6,0,183,3RSIX,0,183,1R7,0,184,
  1510. XC&     3RSEV,2REN,184,1R8,0,185,3REIG,2RHT,185,
  1511. XC&     3RWAR,3RNIN,186,3RSLI,1RT,187,
  1512. XC&     2RIT,0,192,3RTHA,1RT,192,3RTHI,1RS,192/
  1513. XC
  1514. XC
  1515. X    DATA OVOC6A/25654,8480,159,160,161,162,163,164,213,
  1516. X&     26212,8000,166,167,32081,28800,168,33082,2320,168,
  1517. X&     2338,24920,169,26209,23200,169,3401,20800,171,
  1518. X&     6761,19200,177,31254,6761,177,49600,0,178,
  1519. X&     24565,0,178,51200,0,179,32935,0,179,52800,0,180,
  1520. X&     32338,8200,180,54400,0,181,10221,28800,181,56000,0,182,
  1521. X&     9982,8000,182,57600,0,183,30784,0,183,59200,0,184,
  1522. X&     30622,8560,184,60800,0,185,8367,13600,185,
  1523. X&     36858,22774,186,30889,32000,187,
  1524. X&     15200,0,192,32321,32000,192,32329,30400,192/
  1525. XC
  1526. XC
  1527. XC   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
  1528. XC
  1529. XC    DATA OVOC7/2RME,0,193,3RMYS,3RELF,193,3RCRE,3RTIN,193,
  1530. XC&     3RALL,0,194,3REVE,3RRYT,194,
  1531. XC&     3RTRE,3RASU,195,3RVAL,3RUAB,195,3RSAI,3RLOR,196,3RTEE,2RTH,197,
  1532. XC&     3RGRU,1RE,199,3RHAN,1RD,200,3RHAN,2RDS,200,
  1533. XC&     3RLUN,2RGS,201,3RAIR,0,201,3RAVI,3RATO,202,
  1534. XC&     3RFLY,2RER,202,3RTRE,1RE,144,145,204,
  1535. XC&     3RCLI,2RFF,146,147,3RLED,2RGE,146,147,3RPOR,3RTRA,149,
  1536. XC&     3RSTA,2RCK,148,3RBIL,2RLS,148,
  1537. XC&     3RVAU,2RLT,150,3RCUB,1RE,150,3RLET,3RTER,67,150,
  1538. XC&     3RCUR,3RTAI,151,3RLIG,2RHT,151,3RNES,1RT,153,
  1539. XC&     3REGG,0,154,155,3RBAU,3RBLE,156,3RCAN,3RARY,157,158,
  1540. XC&     3RBIR,1RD,203,3RSON,3RGBI,203,
  1541. XC&     3RGUA,2RRD,210,3RGUA,3RRDI,210,3RROS,1RE,211,
  1542. XC&     3RSTR,3RUCT,212,3RCHA,3RNNE,214,
  1543. XC&     3RKEE,3RPER,215,3RLAD,3RDER,216/
  1544. XC
  1545. XC
  1546. X    DATA OVOC7/21000,0,193,21819,8486,193,5525,32374,193,
  1547. X&     2092,0,194,8885,29820,194,
  1548. X&     32725,2381,195,35252,33642,195,30449,19818,196,32205,32320,197,
  1549. X&     11941,8000,199,12854,6400,200,12854,7160,200,
  1550. X&     20054,11960,201,1978,0,201,2489,2415,202,
  1551. X&     10105,8720,202,32725,8000,144,145,204,
  1552. X&     5289,9840,146,147,19404,11400,146,147,26218,32721,149,
  1553. X&     31201,5240,148,3572,19960,148,
  1554. X&     35261,20000,150,5642,8000,150,19420,32218,67,150,
  1555. X&     5658,32049,151,19567,13600,151,22619,32000,153,
  1556. X&     8287,0,154,155,3261,3685,156,4854,2345,157,158,
  1557. X&     3578,6400,203,31014,11289,203,
  1558. X&     12041,28960,210,12041,28969,210,29419,8000,211,
  1559. X&     31218,33740,212,5121,22965,214,
  1560. X&     17805,25818,215,19244,6618,216/
  1561. XC
  1562. XC
  1563. X    DATA OVOCND/-1/
  1564. XC SPARSE, PAGE 7
  1565. XC
  1566. XC SET UP FOR PARSING
  1567. XC
  1568. X    SPARSE=-1
  1569. XC                        !ASSUME PARSE FAILS.
  1570. X    ADJ=0
  1571. XC                        !CLEAR PARTS HOLDERS.
  1572. X    ACT=0
  1573. X    PREP=0
  1574. X    PPTR=0
  1575. X    O1=0
  1576. X    O2=0
  1577. X    P1=0
  1578. X    P2=0
  1579. X#ifdef debug
  1580. X    DFLAG=and(PRSFLG,4).NE.0
  1581. X#endif
  1582. XC
  1583. X    BUZLNT=20
  1584. X    PRPLNT=48
  1585. X    DIRLNT=75
  1586. XC SPARSE, PAGE 8
  1587. XC
  1588. XC NOW LOOP OVER INPUT BUFFER OF LEXICAL TOKENS.
  1589. XC
  1590. X    DO 1000 I=1,LLNT,2
  1591. XC                        !TWO WORDS/TOKEN.
  1592. X      LBUF1=LBUF(I)
  1593. XC                        !GET CURRENT TOKEN.
  1594. X      LBUF2=LBUF(I+1)
  1595. X#ifdef debug
  1596. X      write(0,*) 'lbuf1=',lbuf1,' lbuf2=',lbuf2
  1597. X#endif
  1598. X      IF(LBUF1.EQ.0) GO TO 1500
  1599. XC                        !END OF BUFFER?
  1600. XC
  1601. XC CHECK FOR BUZZ WORD
  1602. XC
  1603. X      DO 50 J=1,BUZLNT,2
  1604. X        IF((LBUF1.EQ.BVOC(J)).AND.(LBUF2.EQ.BVOC(J+1)))
  1605. X&        GO TO 1000
  1606. X50      CONTINUE
  1607. XC
  1608. XC CHECK FOR ACTION OR DIRECTION
  1609. XC
  1610. X      IF(ACT.NE.0) GO TO 75
  1611. XC                        !GOT ACTION ALREADY?
  1612. X      J=1
  1613. XC                        !CHECK FOR ACTION.
  1614. X125      IF((LBUF1.EQ.VVOC(J)).AND.(LBUF2.EQ.VVOC(J+1)))
  1615. X&        GO TO 3000
  1616. X150      J=J+2
  1617. XC                        !ADV TO NEXT SYNONYM.
  1618. X      IF(.NOT.OTEST(VVOC(J))) GO TO 125
  1619. XC                        !ANOTHER VERB?
  1620. X      J=J+VVOC(J)+1
  1621. XC                        !NO, ADVANCE OVER SYNTAX.
  1622. X      IF(VVOC(J).NE.-1) GO TO 125
  1623. XC                        !TABLE DONE?
  1624. XC
  1625. X75      IF((ACT.NE.0).AND.((VVOC(ACT).NE.R50WAL).OR.
  1626. X&        (PREP.NE.0))) GO TO 200
  1627. X      DO 100 J=1,DIRLNT,3
  1628. XC                        !THEN CHK FOR DIR.
  1629. X        IF((LBUF1.EQ.DVOC(J)).AND.(LBUF2.EQ.DVOC(J+1)))
  1630. X&        GO TO 2000
  1631. X100      CONTINUE
  1632. XC
  1633. XC NOT AN ACTION, CHECK FOR PREPOSITION, ADJECTIVE, OR OBJECT.
  1634. XC
  1635. X200      DO 250 J=1,PRPLNT,3
  1636. XC                        !LOOK FOR PREPOSITION.
  1637. X        IF((LBUF1.EQ.PVOC(J)).AND.(LBUF2.EQ.PVOC(J+1)))
  1638. X&        GO TO 4000
  1639. X250      CONTINUE
  1640. XC
  1641. X      J=1
  1642. XC                        !LOOK FOR ADJECTIVE.
  1643. X300      IF((LBUF1.EQ.AVOC(J)).AND.(LBUF2.EQ.AVOC(J+1)))
  1644. X&        GO TO 5000
  1645. X      J=J+1
  1646. X325      J=J+1
  1647. XC                        !ADVANCE TO NEXT ENTRY.
  1648. X      IF(OTEST(AVOC(J))) GO TO 325
  1649. XC                        !A RADIX 50 CONSTANT?
  1650. X      IF(AVOC(J).NE.-1) GO TO 300
  1651. XC                        !POSSIBLY, END TABLE?
  1652. XC
  1653. X      J=1
  1654. XC                        !LOOK FOR OBJECT.
  1655. X450      IF((LBUF1.EQ.OVOC(J)).AND.(LBUF2.EQ.OVOC(J+1)))
  1656. X&        GO TO 600
  1657. X      J=J+1
  1658. X500      J=J+1
  1659. X      IF(OTEST(OVOC(J))) GO TO 500
  1660. X      IF(OVOC(J).NE.-1) GO TO 450
  1661. XC
  1662. XC NOT RECOGNIZABLE
  1663. XC
  1664. X      IF(VBFLAG) CALL RSPEAK(601)
  1665. X      RETURN
  1666. XC SPARSE, PAGE 9
  1667. XC
  1668. XC OBJECT PROCESSING (CONTINUATION OF DO LOOP ON PREV PAGE)
  1669. XC
  1670. X600      OBJ=GETOBJ(J,ADJ,0)
  1671. XC                        !IDENTIFY OBJECT.
  1672. X#ifdef debug
  1673. X      IF(DFLAG) PRINT 60,J,OBJ
  1674. X60      FORMAT(' SPARSE- OBJ AT ',I6,'  OBJ= ',I6)
  1675. X#endif
  1676. X      IF(OBJ.LE.0) GO TO 6000
  1677. XC                        !IF LE, COULDNT.
  1678. X      IF(OBJ.NE.ITOBJ) GO TO 650
  1679. XC                        !"IT"?
  1680. X      OBJ=GETOBJ(0,0,LASTIT)
  1681. XC                        !FIND LAST.
  1682. X      IF(OBJ.LE.0) GO TO 6000
  1683. XC                        !IF LE, COULDNT.
  1684. XC
  1685. X650      IF(PREP.EQ.9) GO TO 8000
  1686. XC                        !"OF" OBJ?
  1687. X      IF(PPTR.EQ.2) GO TO 7000
  1688. XC                        !TOO MANY OBJS?
  1689. X      PPTR=PPTR+1
  1690. X      OBJVEC(PPTR)=OBJ
  1691. XC                        !STUFF INTO VECTOR.
  1692. X      PRPVEC(PPTR)=PREP
  1693. X700      PREP=0
  1694. X      ADJ=0
  1695. XC Go to end of do loop (moved "1000 CONTINUE" to end of module, to avoid
  1696. XC complaints about people jumping back into the doloop.)
  1697. X      GOTO 1000
  1698. XC SPARSE, PAGE 10
  1699. XC
  1700. XC SPECIAL PARSE PROCESSORS
  1701. XC
  1702. XC 2000--    DIRECTION
  1703. XC
  1704. X2000    PRSA=WALKW
  1705. X    PRSO=DVOC(J+2)
  1706. X    SPARSE=1
  1707. X#ifdef debug
  1708. X    IF(DFLAG) PRINT 10,J
  1709. X10    FORMAT(' SPARSE- DIR AT ',I6)
  1710. X#endif debug
  1711. X    RETURN
  1712. XC
  1713. XC 3000--    ACTION
  1714. XC
  1715. X3000    ACT=J
  1716. X    OACT=0
  1717. X#ifdef debug
  1718. X    IF(DFLAG) PRINT 20,J
  1719. X20    FORMAT(' SPARSE- ACT AT ',I6)
  1720. X    if(dflag) write(0,*) "count=",vvoc(j+2)," vnr=",vvoc(j+3)
  1721. X#endif
  1722. X    GO TO 1000
  1723. XC
  1724. XC 4000--    PREPOSITION
  1725. XC
  1726. X4000    IF(PREP.NE.0) GO TO 4500
  1727. X    PREP=PVOC(J+2)
  1728. X    ADJ=0
  1729. X#ifdef debug
  1730. X    IF(DFLAG) PRINT 30,J
  1731. X30    FORMAT(' SPARSE- PREP AT ',I6)
  1732. X#endif debug
  1733. X    GO TO 1000
  1734. XC
  1735. X4500    IF(VBFLAG) CALL RSPEAK(616)
  1736. X    RETURN
  1737. XC
  1738. XC 5000--    ADJECTIVE
  1739. XC
  1740. X5000    ADJ=J
  1741. X    J=(and(ONAME,OFLAG))
  1742. X#ifdef debug
  1743. X    IF(DFLAG) PRINT 40,ADJ,J
  1744. X40    FORMAT(' SPARSE- ADJ AT ',I6,' ORPHAN= ',I6)
  1745. X#endif debug
  1746. X    IF((J.NE.0).AND.(I.GE.LLNT)) GO TO 600
  1747. X    GO TO 1000
  1748. XC
  1749. XC 6000--    UNIDENTIFIABLE OBJECT (INDEX INTO OVOC IS J)
  1750. XC
  1751. X6000    IF(OBJ.LT.0) GO TO 6100
  1752. X    I=579
  1753. X    IF(LIT(HERE)) I=618
  1754. X    IF(VBFLAG) CALL RSPEAK(I)
  1755. X    RETURN
  1756. XC
  1757. X6100    IF(OBJ.NE.-10000) GO TO 6200
  1758. X    IF(VBFLAG) CALL RSPSUB(620,ODESC2(AVEHIC(WINNER)))
  1759. X    RETURN
  1760. XC
  1761. X6200    IF(VBFLAG) CALL RSPEAK(619)
  1762. X    IF(ACT.EQ.0) ACT=(and(OFLAG,OACT))
  1763. X    CALL ORPHAN(-1,ACT,O1,PREP,J)
  1764. X    RETURN
  1765. XC
  1766. XC 7000--    TOO MANY OBJECTS.
  1767. XC
  1768. X7000    IF(VBFLAG) CALL RSPEAK(617)
  1769. X    RETURN
  1770. XC
  1771. XC 8000--    RANDOMNESS FOR "OF" WORDS
  1772. XC
  1773. X8000    IF(OBJVEC(PPTR).EQ.OBJ) GO TO 700
  1774. X    IF(VBFLAG) CALL RSPEAK(601)
  1775. X    RETURN
  1776. XC
  1777. XC End of do-loop.
  1778. XC
  1779. X1000    CONTINUE
  1780. XC                        !AT LAST.
  1781. XC
  1782. XC NOW SOME MISC CLEANUP -- We fell out of the do-loop
  1783. XC
  1784. X1500    IF(ACT.EQ.0) ACT=(and(OFLAG,OACT))
  1785. X    IF(ACT.EQ.0) GO TO 9000
  1786. XC                        !IF STILL NONE, PUNT.
  1787. X    IF(ADJ.NE.0) GO TO 10000
  1788. XC                        !IF DANGLING ADJ, PUNT.
  1789. XC
  1790. X    IF((OFLAG.NE.0).AND.(OPREP.NE.0).AND.(PREP.EQ.0).AND.
  1791. X&        (O1.NE.0).AND.(O2.EQ.0).AND.(ACT.EQ.OACT))
  1792. X&        GO TO 11000
  1793. XC
  1794. X    SPARSE=0
  1795. XC                        !PARSE SUCCEEDS.
  1796. X    IF(PREP.EQ.0) GO TO 1750
  1797. XC                        !IF DANGLING PREP,
  1798. X    IF((PPTR.EQ.0).OR.(PRPVEC(PPTR).NE.0))
  1799. X&        GO TO 12000
  1800. X    PRPVEC(PPTR)=PREP
  1801. XC                        !CVT TO 'PICK UP FROB'.
  1802. XC
  1803. XC 1750--    RETURN A RESULT
  1804. XC
  1805. X1750    CONTINUE
  1806. XC                        !WIN.
  1807. X#ifdef debug
  1808. X    IF(DFLAG) PRINT 70,ACT,O1,O2,P1,P2
  1809. X70    FORMAT(' SPARSE RESULTS- ',5I7)
  1810. X    if(dflag) write(0,*) "sparse=",sparse
  1811. X#endif
  1812. X    RETURN
  1813. XC                        !LOSE.
  1814. XC
  1815. XC 9000--    NO ACTION, PUNT
  1816. XC
  1817. X9000    IF(O1.EQ.0) GO TO 10000
  1818. XC                        !ANY DIRECT OBJECT?
  1819. X    IF(VBFLAG) CALL RSPSUB(621,ODESC2(O1))
  1820. XC                        !WHAT TO DO?
  1821. X    CALL ORPHAN(-1,0,O1,0,0)
  1822. X    RETURN
  1823. XC
  1824. XC 10000--    TOTAL CHOMP
  1825. XC
  1826. X10000    IF(VBFLAG) CALL RSPEAK(622)
  1827. XC                        !HUH?
  1828. X    RETURN
  1829. XC
  1830. XC 11000--    ORPHAN PREPOSITION.  CONDITIONS ARE
  1831. XC        O1.NE.0, O2=0, PREP=0, ACT=OACT
  1832. XC
  1833. X11000    IF(OSLOT.NE.0) GO TO 11500
  1834. XC                        !ORPHAN OBJECT?
  1835. X    P1=OPREP
  1836. XC                        !NO, JUST USE PREP.
  1837. X    GO TO 1750
  1838. XC
  1839. X11500    O2=O1
  1840. XC                        !YES, USE AS DIRECT OBJ.
  1841. X    P2=OPREP
  1842. X    O1=OSLOT
  1843. X    P1=0
  1844. X    GO TO 1750
  1845. XC
  1846. XC 12000--    TRUE HANGING PREPOSITION.
  1847. XC        ORPHAN FOR LATER.
  1848. XC
  1849. X12000    CALL ORPHAN(-1,ACT,0,PREP,0)
  1850. XC                        !ORPHAN PREP.
  1851. X    GO TO 1750
  1852. XC
  1853. X    END
  1854. END_OF_np1.F
  1855. if test 36982 -ne `wc -c <np1.F`; then
  1856.     echo shar: \"np1.F\" unpacked with wrong size!
  1857. fi
  1858. # end of overwriting check
  1859. fi
  1860. if test -f rindex.h -a "${1}" != "-c" ; then 
  1861.   echo shar: Will not over-write existing file \"rindex.h\"
  1862. else
  1863. echo shar: Extracting \"rindex.h\" \(836 characters\)
  1864. sed "s/^X//" >rindex.h <<'END_OF_rindex.h'
  1865. XC
  1866. X    COMMON /RINDEX/ WHOUS,LROOM,CELLA
  1867. X    COMMON /RINDEX/ MTROL,MAZE1
  1868. X    COMMON /RINDEX/ MGRAT,MAZ15
  1869. X    COMMON /RINDEX/ FORE1,FORE3,CLEAR,RESER
  1870. X    COMMON /RINDEX/ STREA,EGYPT,ECHOR
  1871. X    COMMON /RINDEX/ TSHAF
  1872. X    COMMON /RINDEX/ BSHAF,MMACH,DOME,MTORC
  1873. X    COMMON /RINDEX/ CAROU
  1874. X    COMMON /RINDEX/ RIDDL,LLD2,TEMP1,TEMP2,MAINT
  1875. X    COMMON /RINDEX/ BLROO,TREAS,RIVR1,RIVR2,RIVR3,MCYCL
  1876. X    COMMON /RINDEX/ RIVR4,RIVR5,FCHMP,FALLS,MBARR
  1877. X    COMMON /RINDEX/ MRAIN,POG,VLBOT,VAIR1,VAIR2,VAIR3,VAIR4
  1878. X    COMMON /RINDEX/ LEDG2,LEDG3,LEDG4,MSAFE,CAGER
  1879. X    COMMON /RINDEX/ CAGED,TWELL,BWELL,ALICE,ALISM,ALITR
  1880. X    COMMON /RINDEX/ MTREE,BKENT,BKVW,BKTWI,BKVAU,BKBOX
  1881. X    COMMON /RINDEX/ CRYPT,TSTRS,MRANT,MREYE
  1882. X    COMMON /RINDEX/ MRA,MRB,MRC,MRG,MRD,FDOOR
  1883. X    COMMON /RINDEX/ MRAE,MRCE,MRCW,MRGE,MRGW,MRDW,INMIR
  1884. X    COMMON /RINDEX/ SCORR,NCORR,PARAP,CELL,PCELL,NCELL
  1885. X    COMMON /RINDEX/ CPANT,CPOUT,CPUZZ
  1886. END_OF_rindex.h
  1887. if test 836 -ne `wc -c <rindex.h`; then
  1888.     echo shar: \"rindex.h\" unpacked with wrong size!
  1889. fi
  1890. # end of overwriting check
  1891. fi
  1892. echo shar: End of archive 1 \(of 7\).
  1893. cp /dev/null ark1isdone
  1894. MISSING=""
  1895. for I in 1 2 3 4 5 6 7 ; do
  1896.     if test ! -f ark${I}isdone ; then
  1897.     MISSING="${MISSING} ${I}"
  1898.     fi
  1899. done
  1900. if test "${MISSING}" = "" ; then
  1901.     echo You have unpacked all 7 archives.
  1902.     rm -f ark[1-9]isdone
  1903. else
  1904.     echo You still need to unpack the following archives:
  1905.     echo "        " ${MISSING}
  1906. fi
  1907. ##  End of shell archive.
  1908. exit 0
  1909.